#java #io #nio #dataflow
#java #io #nio #поток данных
Вопрос:
Я пересматриваю знания о вводе-выводе в java. Теперь я знакомлюсь с каналами. Я заметил, что java.io.*
у них есть механизм канала и java.nio.*
аналогичный механизм.
Я читаю несколько руководств об этих вещах. Мое текущее видение — каналы из NIO и каналы из ввода-вывода выглядят одинаково. Но я понимаю, что странно иметь повторяющиеся вещи в JDK. Таким образом, я думаю, что я ошибаюсь.
Можете ли вы уточнить разницу?
Ответ №1:
IO ориентирован на поток, NIO ориентирован на буфер.
Потоки ввода-вывода блокируются, NIO имеет неблокирующий режим.
В этом руководстве по Java NIO (автор Якоб Дженков) вы найдете справочную информацию и примеры. Это также поможет вам найти наилучший подход к вашему делу.
Комментарии:
1. У NIO нет потоков, но он может блокировать: действительно, он блокируется по умолчанию. Он также может быть асинхронным.
2. Если кто-то может показать разницу на конкретном примере — это было бы хорошо