Можно ли форк (клонировать) поток в java.nio (или обычный java io)? - PullRequest
3 голосов
/ 24 ноября 2011

Возможно ли (с использованием стандартного API java.nio, без значительного взлома, прокси или фейдера) взять выходной поток и клонировать его, чтобы каждая запись в поток копировалась в два независимых выходных потока из одного ?

Ответы [ 2 ]

3 голосов
/ 24 ноября 2011

Нет.Вам нужно написать реализацию WritableByteChannel, которая делегируется обоим (всем) целевым каналам.Не слишком сложно, только один конструктор и три метода для записи.

EDIT Вы можете сделать то же самое для потоков, написав производный класс FilterOutputStream.Опять очень просто.

0 голосов
/ 17 октября 2013

Как сказал EJP, это очень просто, но вы также можете использовать для этого библиотеку commons-io от Apache.

TeeOutputStream - Из документов: "Классический сплиттер OutputStream. Назван в честь команды unix 'tee'. Он позволяет разветвляться потоку, поэтому теперь есть два потока."

...