Java OutputStream转InputStream
时间: 2024-12-26 08:29:32 浏览: 112
在Java中,OutputStream(输出流)用于向网络、文件或其他输出源写数据,而InputStream(输入流)则用于从同样的来源读取数据。通常情况下,这两个方向的操作是互逆的,但是直接将OutputStream转换成InputStream是不允许的,因为它们代表了数据的不同流向。
如果你需要在Java中进行数据传输,并希望在中间阶段交换流的方向,一种常见的做法是使用DataInputStream和DataOutputStream,它们分别是InputStream和OutputStream的子类,提供了一种双向操作的方式。例如:
```java
FileOutputStream fos = new FileOutputStream("output.txt");
DataOutputStream dos = new DataOutputStream(fos); // 写入模式
// 现在dos既是输出流也是输入流,可以先写入再读回
dos.writeInt(42);
byte[] data = new byte[100];
dos.readFully(data);
// 为了恢复到原始的OutputStream,可以这样做
fos.close();
FileInputStream fis = new FileInputStream("output.txt");
BufferedInputStream bis = new BufferedInputStream(fis); // 读取模式
byte[] readData = new byte[data.length];
bis.read(readData);
```
这里需要注意的是,一旦关闭了OutputStream(如`fos.close()`),就无法直接复用它作为InputStream了,你需要创建一个新的InputStream对象。
阅读全文
相关推荐

















