将ByteArrayOutputStream转换为FileInputStream

7

我在ByteArrayOutputStream中保存了数据流。现在,我想在FileInputStream中读取它。我该怎么做?

这是我的输出流。

...
OutputStream out = new ByteArrayOutputStream();
...

现在怎么从 FileInputStream 中读取呢?

2
输出流是用于写入的,你可以从中读取。 - sanbhat
关闭输出流,然后使用FileInputStream打开文件? - user2097804
流存在我的内存中 - 它是ByteArrayOutputStream。然后我需要一个FileInputStream变量,用于该流。 - user1454686
我没有文件。我有 ByteArrayOutputStream。 - user1454686
1个回答

16

您可以使用ByteArrayInputStream创建一个流对象。

InputStream is = new ByteArrayInputStream(bos.toByteArray());

然后从这个 InputStream 中读取。

如果您的接口仅接受 FileInputStream,则该接口存在问题...

如果一个接口只能处理文件,则应该接受一个 File,否则应该使用 InputStream

此外,如果使用线程,可以在线程之间直接使用 PipedInputStreamPipedOutputStream


我只需要FileInputStream。或者我有一个字节数组(byte []变量),我想从FileInputStream中读取。 - user1454686
2
如果你的接口只接受FileInputStream,那么这个接口就是有问题的。 - Ian Roberts

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接