Мое мнение:
Краткая версия
Это добавление пакета java.nio.file с его высокоуровневыми значительно расширенными функциями работы с файлами и файловой системой.
С точки зрения сетевых сокетов или низкоуровневого доступа к файлам, NIO == NIO.2 с некоторыми улучшениями удобства.
Большая версия
Java ввод/вывод
Пакет: java.io
Старый блокирующий API ввода-вывода
Java НИО
В Java 1.4 добавлен новый неблокирующий API.
Пакет: java.nio
Java неблокирующий ввод-вывод. Такие классы, как Selector
, SelectorKey
, Channel
.
Мне кажется, что NIO был большим шагом вперед для сетевого ввода-вывода (Selector
, SelectorKey
, SocketChannel
, ServerSocketChannel
, Buffer
), а тем более для файлового ввода-вывода (FileChannel
и Buffer
). только, включая файлы с отображением памяти). Это довольно низкоуровневый API как для сетевой, так и для файловой части.
Java NIO.2
Добавлено в Java 7. В основном речь идет о добавлении значительно улучшенного API для работы с файлами и файловыми системами и адресации. Новый API, связанный с файлами и файловыми системами, имеет относительно высокий уровень.
Пакет: java.nio.file
и несколько дополнений к родительскому java.nio
.
Эти дополнения предназначены для файлового ввода-вывода и лишь несколько незначительных дополнений к сетевому вводу-выводу или низкоуровневому файловому API.
Наиболее заметными низкоуровневыми, не связанными с файлами дополнениями API являются AsynchronousSocketChannel
, AsynchronousServerSocketChannel
и AsynchronousFileChannel
, которые добавляют варианты обратных вызовов к некоторым методам. Асинхронные версии в основном являются удобным дополнением; такие интерфейсы сопоставления могли быть собраны вместе и раньше, но теперь они доступны в JRE «из коробки».
Новый API для работы с файлами предлагает множество полезных функций: гораздо более полезную адресацию файловой системы с помощью пути, значительно улучшенную работу с ZIP-файлами с использованием настраиваемого поставщика файловой системы, доступ к специальным атрибутам файла, множество удобных методов, таких как чтение всего файла с помощью одной команды, копирование файла с помощью одна команда и т. д. Но все это связано с файлом/файловой системой и все довольно высокого уровня.
Повторяя то, что я уже сказал выше, с точки зрения сетевых сокетов или низкоуровневого доступа к файлам, NIO == NIO.2
Соответствующие ссылки
person
Espinosa
schedule
03.09.2019