Что такое варианты использования Переданных по каналу потоков? Почему просто не считанные данные в буфер и затем выписывают им?
Одно из преимуществ использования потоковых каналов состоит в том, что они обеспечивают функциональность потока в нашем коде, не заставляя нас создавать новые специализированные потоки.
Например, мы можем использовать каналы для создания простого средства ведения журнала для нашего приложения. Мы можем отправлять сообщения в средство ведения журнала через обычный Printwritter, а затем он может выполнять любую обработку или буферизацию, которые требуются перед отправкой сообщения в конечный пункт назначения.
подробнее см .: http://docstore.mik.ua/orelly/java/exp/ch08_01.htm
Каналы в Java IO обеспечивают возможность взаимодействия двух потоков, работающих в одной JVM. Таким образом, каналы являются обычным источником или местом назначения данных.
Это полезно, если у вас есть два долго работающих потока, один из которых настроен на создание данных, а другой - на их потребление.
Как уже было сказано в других ответах, они предназначены для использования между потоками. На практике их лучше избегать. Я использовал их один раз за 13 лет, и мне жаль, что нет.
Обычно они используются для одновременного чтения и записи, обычно двумя разными потоками.
(Их конструкция довольно плохая. Вы не можете переключить потоки на одном конце, а затем выйти из этого потока, не повредив трубу.)