如何将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