Java中,inputstream转Byte[]
时间: 2024-10-24 12:10:40 浏览: 31
在Java中,如果你想将InputStream类型的字节流转换成Byte数组(byte[]),你可以按照以下步骤操作:
1. 首先,创建一个 ByteArrayOutputStream 对象作为临时存储区,它会接收从 InputStream 中读取的数据。
```java
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
```
2. 然后,通过一个循环读取 InputStream 中的内容,并写入 ByteArrayOutputStream。这里可以使用 `read()` 或 `transferTo()` 方法。例如:
```java
byte[] buffer = new byte[4096]; // 一次读取的缓冲大小
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
```
3. 当输入流读取完毕后,调用 ByteArrayOutputStream 的 `toByteArray()` 方法获取最终的 Byte 数组:
```java
byte[] bytes = outputStream.toByteArray();
```
注意,如果 InputStream 是网络连接或者其他不可缓存的资源,你需要在转换前确保所有数据都能被读取到,因为一旦关闭了 InputStream,就不能再读取数据了。
阅读全文