Есть ли разница между каналами из NIO и IO

#java #io #nio #dataflow

#java #io #nio #поток данных

Вопрос:

Я пересматриваю знания о вводе-выводе в java. Теперь я знакомлюсь с каналами. Я заметил, что java.io.* у них есть механизм канала и java.nio.* аналогичный механизм.

Я читаю несколько руководств об этих вещах. Мое текущее видение — каналы из NIO и каналы из ввода-вывода выглядят одинаково. Но я понимаю, что странно иметь повторяющиеся вещи в JDK. Таким образом, я думаю, что я ошибаюсь.

Можете ли вы уточнить разницу?

Ответ №1:

IO ориентирован на поток, NIO ориентирован на буфер.

Потоки ввода-вывода блокируются, NIO имеет неблокирующий режим.

В этом руководстве по Java NIO (автор Якоб Дженков) вы найдете справочную информацию и примеры. Это также поможет вам найти наилучший подход к вашему делу.

Комментарии:

1. У NIO нет потоков, но он может блокировать: действительно, он блокируется по умолчанию. Он также может быть асинхронным.

2. Если кто-то может показать разницу на конкретном примере — это было бы хорошо