InputStream转ByteArrayOutputStream
时间: 2023-06-21 16:06:41 浏览: 94
可以使用Java中的缓存区来实现InputStream到ByteArrayOutputStream的转换,具体代码如下:
```java
public static ByteArrayOutputStream inputStreamToByteArrayOutputStream(InputStream inputStream) throws IOException {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) > -1 ) {
outputStream.write(buffer, 0, len);
}
outputStream.flush();
return outputStream;
}
```
在这个方法中,我们创建了一个ByteArrayOutputStream对象,同时定义了一个长度为1024的byte数组作为缓存区。然后,我们使用while循环从InputStream中读取数据,将其写入ByteArrayOutputStream中。最后,我们调用flush()方法确保数据已经全部写入ByteArrayOutputStream中。
使用示例代码:
```java
InputStream inputStream = new FileInputStream("input.txt");
ByteArrayOutputStream outputStream = inputStreamToByteArrayOutputStream(inputStream);
byte[] byteArray = outputStream.toByteArray();
```
在这个示例中,我们首先创建了一个文件输入流,然后将其传递给inputStreamToByteArrayOutputStream()方法。该方法将InputStream转换为ByteArrayOutputStream,并返回ByteArrayOutputStream对象。最后,我们可以使用toByteArray()方法将ByteArrayOutputStream转换为byte数组。
阅读全文