【Java】byte数组与流的相互转换
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class ByteArrayStreamConversion {
// 将InputStream转换为byte数组
public static byte[] inputStreamToByteArray(InputStream is) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length;
while ((length = is.read(buffer)) != -1) {
baos.write(buffer, 0, length);
}
baos.close();
return baos.toByteArray();
}
// 将byte数组转换为InputStream
public static InputStream byteArrayToInputStream(byte[] byteArray) {
return new ByteArrayInputStream(byteArray);
}
public static void main(String[] args) {
// 示例:将字符串转换为byte数组,然后转换回InputStream
String str = "Hello, World!";
byte[] byteArray = str.getBytes(); // 字符串转换为byte数组
// 将byte数组转换为InputStream
InputStream is = byteArrayToInputStream(byteArray);
try {
// 将InputStream转换回byte数组并打印
byte[] convertedByteArray = inputStreamToByteArray(is);
System.out.println(new String(convertedByteArray)); // 输出: Hello, World!
} catch (IOException e) {
e.printStackTrace();
}
}
}
这段代码展示了如何在Java中将InputStream
转换成byte
数组,以及将byte
数组转换回InputStream
。这是在处理二进制数据时常见的操作,特别是当需要将数据存储在数据库或传输过程中时。
评论已关闭