如何将OutputStream转换为InputStream?

我正处于开发阶段,在那里我有两个模块,从一个模块我得到的输出为a OutputStream,第二个模块仅接受InputStream。您是否知道如何转换OutputStream为InputStream可以连接这两部分的方式(反之亦然,我是说真的)

谢谢

回答:

nOutputStream是您向其中写入数据的地方。如果某个模块公开了OutputStream,则期望在另一端读取一些内容。

InputStream另一方面,暴露出的信息表示您需要侦听此流,并且会有一些数据可以读取。

因此可以将一个连接InputStream到一个OutputStream

InputStream----read---> intermediateBytes[n] ----write----> OutputStream

正如有人提到的那样,这就是IOUtils的copy()方法可以让您完成的工作。走另一条路是没有道理的…希望这是有道理的

更新:

当然,我对这一点的思考越多,我越能看到这实际上是一项要求。我知道一些提及Piped输入/输出流的评论,但是还有另一种可能性。

如果公开的输出流是ByteArrayOutputStream,那么您始终可以通过调用toByteArray()方法来获取全部内容。然后,您可以使用ByteArrayInputStream子类创建输入流包装器。这两个都是伪流,它们基本上都只是包装一个字节数组。因此,以这种方式使用流在技术上是可行的,但对我来说仍然很奇怪…

以上是 如何将OutputStream转换为InputStream? 的全部内容, 来源链接: utcz.com/qa/425608.html

回到顶部