Meine Einstellung:
Kurzfassung
Es ist das Hinzufügen des Pakets java.nio.file mit seiner stark erweiterten Datei- und Dateisystemfunktionalität auf hohem Niveau.
Aus der Sicht von Netzwerk-Sockets oder einfachem Dateizugriff ist NIO == NIO.2 mit einigen praktischen Verbesserungen.
Längere Version
Java IO
Paket: java.io
Alte blockierende E / A-API
Java NIO
In Java 1.4 wurde die neue nicht blockierende API hinzugefügt.
Paket: java.nio
Java nicht blockierende E / A. Klassen wie Selector
, SelectorKey
, Channel
.
Es scheint mir , die NIO einen großen Schritt für das Netzwerk war I / O ( Selector
, SelectorKey
, SocketChannel
, ServerSocketChannel
, Buffer
), viel weniger für Datei - I / O ( FileChannel
und Buffer
nur, einschließlich Memory - Dateien abgebildet). Dies ist eine API auf relativ niedriger Ebene, sowohl für Netzwerk- als auch für Dateiteile.
Java NIO.2
In Java 7 hinzugefügt. Es geht hauptsächlich um das Hinzufügen einer stark verbesserten Datei- und Dateisystem-Manipulations- und Adressierungs-API. Die neue Datei- und Dateisystem-bezogene API ist relativ hoch.
Paket: java.nio.file
und einige Ergänzungen zum Elternteil java.nio
.
Diese Ergänzungen gelten für Datei-E / A und nur wenige geringfügige Ergänzungen für Netzwerk-E / A oder Datei-API auf niedriger Ebene.
Am bemerkenswertesten Low-Level, nicht notwendig Datei verwendet, API Ergänzungen sind AsynchronousSocketChannel
, AsynchronousServerSocketChannel
und AsynchronousFileChannel
, die Rückrufe fügen Varianten auf einige Methoden. Die asynchronen Versionen von sind hauptsächlich eine praktische Ergänzung. Solche Mapping-Schnittstellen hätten schon früher zusammen gehackt werden können, aber jetzt sind sie in der JRE sofort verfügbar.
Die neue Datei-API bringt viele Extras mit sich - viel nützlichere Adressierung des Dateisystems mit Path, viel verbesserte Manipulation von ZIP-Dateien mithilfe eines benutzerdefinierten Dateisystemanbieters, Zugriff auf spezielle Dateiattribute, viele praktische Methoden wie das Lesen der gesamten Datei mit einem Befehl und das Kopieren von Dateien mit Ein Befehl usw. Aber es hängt alles mit Datei / Dateisystem zusammen und alles auf ziemlich hohem Niveau.
Ich wiederhole, was ich oben bereits gesagt habe, aus der Perspektive von Netzwerksockets oder Dateizugriff auf niedriger Ebene, NIO == NIO.2
Relevante Links