Heim >Java >javaLernprogramm >Beispielanalyse von Lese- und Schreibvorgängen für Java-Dateien
Java-Programme ermöglichen die Datenübertragung mit Eingabe- und Ausgabegeräten über Streams. Streams in Java befinden sich alle im java.io-Paket und werden als IO-Streams (Eingabe und Ausgabe) bezeichnet. E/A-Streams können entsprechend den unterschiedlichen Datenübertragungsrichtungen in Bytestreams und Zeichenstreams unterteilt werden. Das Programm liest Daten aus dem Eingabestream und schreibt sie in den Ausgabestream Daten: Im E/A-Paket werden die Eingabe und Ausgabe des Bytestreams durch java.InputStream bzw. java.io.OutputStream dargestellt, und die Eingabe und Ausgabe des Zeichenstreams werden durch java.io.Reader und java dargestellt. io.Writer bzw.
In einem Computer liegen alle Dateien, ob Text, Bilder, Audio oder Video, in binärer Form vor und werden entsprechend der Richtung der Datenübertragung unterteilt Eingabestreams und Byte-Ausgabestreams, das JDK stellt zwei abstrakte Klassen InputStream und OutputStream bereit. Sie sind die obersten übergeordneten Klassen von Byte-Streams.
int read()//. Lesen Sie ein 8-Bit-Byte aus dem Eingabestream, konvertieren Sie es in eine Ganzzahl zwischen 0 und 255 und geben Sie diese Ganzzahl zurück.
int read(byte[]b) // Mehrere Bytes aus dem Eingabestream lesen und im Byte-Array speichern durch Parameter b angegeben und gibt die Ganzzahltabelle 4 zurück, um die Anzahl der Bytes zu lesen
int read(byte[]b,int off,int len )//Eine Anzahl von Bytes aus dem Eingabestream lesen und im Byte-Array speichern angegeben durch Parameter b. off gibt den Startindex des Byte-Arrays an, um mit dem Speichern von Daten zu beginnen, und len stellt die Anzahl der gelesenen Bytes dar
void close ()//Schließen Sie diesen Eingabestream und geben Sie alle mit dem Stream verbundenen Systemressourcen frei
void write(int b)//Schreibe ein Byte in den Ausgabestream
void write(byte[ ]b)//Schreibe alle Bytes des durch Parameter b angegebenen Byte-Arrays in den Ausgabestream
void write(byte[]b,int off,int len)//Beginnen Sie mit dem Offset off im angegebenen Byte-Array. len Bytes werden in den Ausgabestream geschrieben
void flush()//Aktualisieren Sie diesen Ausgabestream und erzwingen Sie die Handschrift aller gepufferten Ausgaben Bytes
void close()//Diesen Ausgabestream schließen und alle mit diesem Stream verbundenen Systeme freigeben. Die Ressource
flush()-Methode wird verwendet, um das Schreiben der Daten im aktuellen Ausgabestream-Puffer (normalerweise ein Byte-Array) zu erzwingen Dieser Vorgang wird als Flushing bezeichnet. Obwohl die beiden Klassen InputStream und OutputStream einige Methoden zum Lesen und Schreiben von Daten bereitstellen, sind diese beiden Klassen abstrakte Klassen und können nicht instanziiert werden.
Da die Daten im Computer grundsätzlich in Dateien auf der Festplatte gespeichert werden, werden beim Betrieb einer Datei Daten aus der Datei gelesen und in die Datei geschrieben zum Lesen. Zwei Klassen für Schreiboperationen. Da das Lesen von Daten aus einer Datei ein wiederholter Vorgang ist, ist eine Schleifenanweisung erforderlich, um ein kontinuierliches Lesen von Daten zu erreichen.
package IO; import java.io.FileInputStream; public class Li01 { public static void main(String[] args) throws Exception{ FileInputStream in=new FileInputStream("test.txt"); int b=0; while(true){ b=in.read(); if(b==-1){ break; } System.out.print(b+" "); } in.close(); } }
Demo-Ergebnisse
Der Grund, warum die Zahlen ausgegeben werden, liegt darin, dass die Dateien auf der Festplatte in Form von Bytes vorliegen. Beim Lesen der Dateidaten müssen Sie sicherstellen, dass die Datei im entsprechenden Verzeichnis vorhanden ist lesbar.
package IO; import java.io.FileOutputStream; import java.io.OutputStream; import java.nio.charset.StandardCharsets; public class Li02 { public static void main(String[] args) throws Exception{ OutputStream out=new FileOutputStream("example1.txt"); String str="好好学习,天天向上!"; byte[]b=str.getBytes(StandardCharsets.UTF_8); for(int i=0;i<b.length;i++){ out.write(b[i]); } out.close(); } }
Beim Schreiben von Daten über FileOutputStream wird automatisch die Datei example1.txt erstellt und die Daten werden in die Datei geschrieben. Wenn Sie Inhalte in eine vorhandene Datei schreiben, wird zuerst die Datei geschrieben Der Inhalt wird gelöscht und dann werden neue Daten geschrieben. Wenn Sie Inhalte an die vorhandene Datei anhängen möchten, können Sie nach dem Dateinamen einen booleschen Wert hinzufügen und ihn auf true setzen.
package IO; import java.io.FileOutputStream; import java.io.OutputStream; import java.nio.charset.StandardCharsets; public class Li02 { public static void main(String[] args) throws Exception{ OutputStream out=new FileOutputStream("example1.txt",true); String str="好好学习,天天向上!"; byte[]b=str.getBytes(StandardCharsets.UTF_8); for(int i=0;i<b.length;i++){ out.write(b[i]); } out.close(); } }
Das obige ist der detaillierte Inhalt vonBeispielanalyse von Lese- und Schreibvorgängen für Java-Dateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!