inputstream转换为byte[]
时间: 2023-12-21 19:07:13 浏览: 80
Blob、InputStream、byte 互转
4星 · 用户满意度95%
将InputStream转换为byte[]的一种常见方法是使用ByteArrayOutputStream。以下是一个示例代码:
```java
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class InputStreamToByteArray {
public static byte[] convertToByteArray(InputStream inputStream) throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
byteArrayOutputStream.write(buffer, 0, bytesRead);
}
return byteArrayOutputStream.toByteArray();
}
// 示例用法
public static void main(String[] args) {
try {
// 假设有一个InputStream对象叫做inputStream
InputStream inputStream = ...;
// 转换为byte[]
byte[] byteArray = convertToByteArray(inputStream);
// 打印byteArray的长度
System.out.println("Byte array length: " + byteArray.length);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上面的代码中,我们使用了一个ByteArrayOutputStream来缓存从InputStream读取的数据,并将其转换为byte数组。我们使用一个循环来读取输入流中的数据,并将其写入到ByteArrayOutputStream中。最后,通过调用toByteArray()方法,将ByteArrayOutputStream中的数据转换为byte数组。
阅读全文