BufferedOutputStream如何转化成BufferedInputStream
时间: 2023-10-25 17:11:07 浏览: 94
将输出流OutputStream转化为输入流InputStream的方法
BufferedOutputStream和BufferedInputStream都是Java IO包中的类,其中BufferedOutputStream是用来写入数据的,而BufferedInputStream是用来读取数据的。
如果需要将一个BufferedOutputStream转化成BufferedInputStream,可以通过以下步骤实现:
1. 首先,创建一个ByteArrayOutputStream对象,用于保存BufferedOutputStream中的数据。可以通过调用ByteArrayOutputStream的toByteArray()方法获取存储的数据。
2. 然后,将ByteArrayOutputStream对象转换为ByteArrayInputStream对象,这样就可以创建一个BufferedInputStream对象来读取数据。
下面是具体的代码实现:
```java
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("output.txt"));
// 写入数据
bos.write("Hello World".getBytes());
bos.flush();
bos.close();
// 将bos转换为bis
ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.writeTo(bos);
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
BufferedInputStream bis = new BufferedInputStream(bais);
// 读取数据
byte[] buffer = new byte[1024];
int len;
while ((len = bis.read(buffer)) != -1) {
System.out.println(new String(buffer, 0, len));
}
bis.close();
```
需要注意的是,转换过程中需要先将BufferedOutputStream中的数据flush到底层流中,否则在读取数据时可能会出现数据不完整的情况。
阅读全文