Как уведомить поток PipedInputStream о том, что поток PipedOutputStream записал последний байт?

Как правильно закончить работу на выходном конце трубы? Мне нужно, чтобы поток записи завершался или выполнял какую-то другую работу, а поток чтения считывал все записанные данные до конца.

Должен ли я закрыть трубу на пишущем конце или как?

ОБНОВЛЕНИЕ 1

Я хочу уточнить... Согласно данным ответам, правильно ли я думаю, что поведение каналов по дизайну не предполагает какого-либо изящного завершения?

после открытия единственный способ остановить трубопровод - сломать трубу?

Обычные потоки ожидают окончания сигнала потока, когда метод read()возвращает -1. Правильно ли я думаю, что это никогда не происходит с конвейерными потоками?

6
задан Dims 29 March 2012 в 13:33
поделиться