Moje podanie:
Krótka wersja
Jest to dodanie pakietu java.nio.file ze znacznie ulepszoną funkcjonalnością plików i systemów plików na wysokim poziomie.
Z punktu widzenia gniazd sieciowych lub niskiego poziomu dostępu do plików, NIO == NIO.2 z kilkoma udogodnieniami.
Dłuższa wersja
Java IO
Pakiet: java.io
stary blokujący interfejs I / O API
Java NIO
Dodano w Javie 1.4, nowym nieblokującym API.
Pakiet: java.nio
nieblokujące IO Java. Klasy podoba Selector
, SelectorKey
, Channel
.
Wydaje mi Nio to duży krok w górę do sieci I / O ( Selector
, SelectorKey
, SocketChannel
, ServerSocketChannel
, Buffer
), a tym bardziej dla pliku I / O ( FileChannel
i Buffer
tylko w tym pamięci mapowane plików). Jest to interfejs API dość niskiego poziomu, zarówno dla części sieciowych, jak i plików.
Java NIO.2
Dodano w Javie 7. Chodzi głównie o dodanie znacznie ulepszonego interfejsu API do obsługi plików i systemów plików oraz adresowania. Nowy interfejs API związany z plikami i systemem plików jest stosunkowo wysoki.
Pakiet: java.nio.file
i kilka dodatków do rodzica java.nio
.
Te dodatki są dla we / wy pliku i tylko kilka pomniejszych dodatków do sieciowego we / wy lub niskiego poziomu API plików.
Najbardziej zauważalną niskim poziomie, nie jest konieczne plik związane, dodatki API są AsynchronousSocketChannel
, AsynchronousServerSocketChannel
i AsynchronousFileChannel
, co dodaje callbacków warianty niektórych metod. Wersje asynchroniczne programu to przede wszystkim udogodnienie; takie interfejsy mapowania mogły zostać zhakowane razem nawet wcześniej, ale teraz są one dostępne po wyjęciu z pudełka w środowisku JRE.
Nowe API plików zapewnia wiele korzyści - znacznie bardziej przydatne adresowanie systemu plików za pomocą Path, znacznie ulepszone manipulowanie plikami ZIP przy użyciu niestandardowego dostawcy systemu plików, dostęp do specjalnych atrybutów plików, wiele wygodnych metod, takich jak odczyt całego pliku za pomocą jednego polecenia, kopiowanie pliku za pomocą jedno polecenie itd. Ale to wszystko jest związane z plikami / systemem plików i wszystko na dość wysokim poziomie.
Powtarzając to, co powiedziałem powyżej, z perspektywy gniazd sieciowych czy niskiego poziomu dostępu do plików, NIO == NIO.2
Odpowiednie linki