Gesamtstruktur
IO sollte die am häufigsten verwendete Funktion in täglichen Projekten sein, unabhängig davon, ob es sich um das einfache Lesen von Dateien oder die Überwachung von Serverports handelt. Bei der Verwendung von a wird IO jedoch verwendet Wenn wir eine komplexe IO-Basisklassenbibliothek verwenden, sind wir oft verwirrt. Sollten wir InputStream
oder Reader
wählen? Die Auswahl der geeigneten Klassenbibliothek entsprechend dem Anwendungsszenario ist für viele Programmierer ein Problem. Hier habe ich die häufig verwendeten Klassenbibliotheken im Java IO-Paket sortiert, einschließlich ihrer Organisationsstruktur, Funktionsmerkmale, anwendbaren Szenarien usw. Für die spätere Verwendung können Sie schnell und einfach die am besten geeignete IO-Klasse entsprechend Ihren Anforderungen auswählen. InputStream
Buffer
Gemäß dem Analysediagramm kann IO in zwei Dimensionen unterteilt werden: a große Ebene:
Datentyp, das heißt: Zeichen oder Byte, Klasse entsprechend - oder
Writer/Reader
OutputStream/InputStream
Operationstyp, Das heißt: Lesen (Eingabe) oder Schreiben (Ausgabe), die Klasse entspricht - oder
Reader/InputStream
Writer/OutputStream
Verwendungstipps
Alle Operationen von Java IO sind nichts weiter als Die meisten Erweiterungen der vier Hauptklassen in diesen beiden Dimensionen sind relativ einfach. Im Folgenden finden Sie eine separate Erklärung der etwas schwer verständlichen und bemerkenswerten Punkte
Java IO verwendet Das Decorator-Muster ist umfassend, daher wird bei Verwendung der IO-Klassenbibliothek im Allgemeinen die Decorator-Aufrufmethode verwendet:
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
Nach dem Login kopieren
In Java IO, ob dies der Fall ist Lesen oder Schreiben von Zeichen Es besteht grundsätzlich eine Eins-zu-Eins-Entsprechung zwischen Lese- und Schreibbytes. Mit anderen Worten: Wenn es eine bestimmte Leseklasse gibt, gibt es normalerweise eine bestimmte Schreibklasse. Dies kann zur Vereinfachung beitragen. wie - und
entsprechen dem Lesen und Schreiben von Dateien; FileInputStream
und FileOutputStream
entsprechen dem Lesen und Schreiben von Pipe-Daten. PipedInputStream
PipedOutputStream
Wie unterscheidet man Lesen bzw Beim Schreiben ist dies ein Problem, das Anfängern oft Probleme bereitet. Hier stelle ich eine einfache Möglichkeit zur Unterscheidung bereit: Nehmen Sie das Programm, das Sie gerade ausführen, als Benchmark (dh das Programm, das IO aufruft) und die vom Programm an andere übertragenen Daten Stellen werden geschrieben (Ausgabe), von anderen Stellen an das Programm übertragene Daten werden gelesen (Eingabe); wenn die vom Programm generierten Daten in einer Protokolldatei gespeichert werden, werden sie geschrieben und die Daten werden vom Port abgerufen und im Programm verarbeitet wird gelesen -
Wählen Sie entsprechend der auszuführenden Aktion und dem Zieldatentyp die entsprechende IO-Klasse aus für die Montage basierend auf dem Verwendungsszenario. Hinweis Der obige Satz umfasst tatsächlich drei Schritte:
Die auszuführende Aktion, das heißt, ob gelesen oder geschrieben werden soll Datentyp, d. h. Bytes oder Zeichen, und manchmal ist eine Konvertierung zwischen Zeichen und Bytes erforderlich (z. B. - ), wenn Daten im Netzwerk oder im Speicher gespeichert werden müssen im Allgemeinen in Form von Bytes; oder Dateien Zum Schreiben liegen Textdateien, die selbst zeichencodiert sind, im Allgemeinen in Zeichenform vor, während sie für Bilder, Videos und andere Dateien nur die Byteform verwenden können
OutputStreamWriter
Nutzungsszenarien: Tatsächlich müssen die Nutzungsszenarien in zwei Schritten betrachtet werden. Erstens müssen Sie die offensichtlichen Szenarien berücksichtigen, z. B. Dateioperationen, Zeichenfolgenoperationen oder Pipe-Kommunikation Wenn ja, wird empfohlen, die Datei über BufferedWriter zu kapseln, da dies eine ineffiziente Methode ist, um jedes Mal eine kleine Datenmenge zu öffnen und zu schreiben - ZusammenfassungDieser Artikel fasst hauptsächlich die grundlegenden IO-Klassen kurz zusammen und erläutert die grundlegenden Konzepte in IO und die Verwendung der IO-Basisklassenbibliothek. Natürlich werden in diesem Artikel nicht alle IO-Implementierungsklassen aufgeführt Interessierte Schüler können Java selbst ausprobieren. Gleichzeitig wird in diesem Artikel nicht beschrieben, wie die IO-Klassenbibliothek angepasst wird. Java hat NIO nach 1.4 eingeführt, nämlich: No Blocking IO, was dem ursprünglichen IO entspricht. Es gibt bestimmte Unterschiede in den Nutzungsszenarien
Das obige ist der detaillierte Inhalt vonEine kurze Einführung in den Einstieg in IO in Java (Bild). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!