如何在java中复制/分割输入流



有没有一种方法可以将输入流复制/拆分为两个输入流,类似于apache commons TeeOutputStream?我试图从流中过滤一些输入,同时在另一个线程中显示整个输入流。

使用org.apache.commons.io.input.TeeInputStream

我将编写一个InputStreamFilterer类,该类在构造函数中使用原始InputStream。

为getOriginalStream和getFilteredStream提供两种方法,并用一个代理/委托来包装过滤后的流,该代理/委托会截取读取的字节,以取出您想要过滤的数据。

这种方法假设您希望在读取流时对其进行过滤,并且对如何使用数据过于天真。还要注意字符编码。

您可以读取输入流,将其写入两个不同的输出流,并从中读取。

您可能想要ProxyInputStream

示例:

ProxyInputStream pis = new ProxyInputStream(conn.getInputStream());

最新更新