Мое мнение:
Укороченная версия
Это добавление пакета java.nio.file с его высокоуровневыми значительно улучшенными функциями файлов и файловой системы.
С точки зрения сетевых сокетов или низкоуровневого доступа к файлам, NIO == NIO.2 с некоторыми улучшениями удобства.
Более длинная версия
Java IO
Пакет: java.io
Старый API блокировки ввода-вывода
Java NIO
Добавлен в Java 1.4 новый неблокирующий API.
Пакет: java.nio
Java неблокирующий ввод-вывод. Классы нравится Selector
, SelectorKey
, Channel
.
Это , мне кажется, НИО был большой шаг для сети I / O ( Selector
, SelectorKey
, SocketChannel
, ServerSocketChannel
, Buffer
), намного меньше для файла I / O ( 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
Соответствующие ссылки