Как скопировать / разделить входной поток в Java? - PullRequest
2 голосов
/ 04 января 2012

Есть ли способ скопировать / разделить входной поток на два входных потока, аналогичных Apache Commons TeeOutputStream?Я пытаюсь отфильтровать входные данные из потока при отображении всего входного потока в другом потоке.

Ответы [ 4 ]

1 голос
/ 22 июня 2012

Использование org.apache.commons.io.input.TeeInputStream

0 голосов
/ 16 октября 2012

Возможно, вы хотите ProxyInputStream

Пример:

ProxyInputStream pis = new ProxyInputStream(conn.getInputStream());
0 голосов
/ 05 января 2012

Вы можете прочитать входной поток, записать его в два разных выходных потока и прочитать из них.

0 голосов
/ 04 января 2012

Я бы написал класс InputStreamFilterer, который взял исходный InputStream в конструкторе.

Предложите два метода для getOriginalStream и getFilteredStream и оберните отфильтрованный поток прокси / делегатом, который перехватывает прочитанные байты, чтобы извлечь данные, которые вы хотите отфильтровать.

Этот подход предполагает, что вы хотите фильтровать поток по мере его чтения, и наивен в том, как вы хотите использовать данные. Также следите за кодировкой символов.

...