Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中复制/拆分inputstream?_Java_Io_Split_Copy_Inputstream - Fatal编程技术网

如何在java中复制/拆分inputstream?

如何在java中复制/拆分inputstream?,java,io,split,copy,inputstream,Java,Io,Split,Copy,Inputstream,是否有一种方法可以将输入流复制/拆分为两个类似于apache commons TeeOutputStream的输入流?我试图从流中过滤一些输入,同时在另一个线程中显示整个输入流。我将编写一个InputStreamFilterer类,它接受构造函数中的原始InputStream 为getOriginalStream和getFilteredStream提供两种方法,并使用代理/委托将过滤后的流包装起来,该代理/委托截取读取的字节,以取出要过滤的数据 这种方法假设您希望在读取流时对其进行过滤,并且对于

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

我将编写一个InputStreamFilterer类,它接受构造函数中的原始InputStream

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


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

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

使用您可能想要的org.apache.commons.io.input.TeeInputStream

例如:

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

如果Apache的TeeOutputStream满足了您的需求,有什么理由不使用它吗?@fge这正是我的第一个想法。问:我如何制作像X一样工作的东西?A:用X!TeeOutputStream拆分输出流,而我希望拆分输入流。如果要将其拆分为单独的输出,请使用此选项,否则请使用ProxyInputStream