Heim >Java >javaLernprogramm >JAVA lernt E/A-Operationen, Byte-Stream und Zeichen-Stream (zusammenfassende gemeinsame Nutzung)

JAVA lernt E/A-Operationen, Byte-Stream und Zeichen-Stream (zusammenfassende gemeinsame Nutzung)

WBOY
WBOYnach vorne
2022-04-07 13:23:411795Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über Java. Er stellt hauptsächlich Probleme im Zusammenhang mit E/A-Operationen vor, einschließlich Byte-Streams und Zeichen-Streams. Ich hoffe, dass er für alle hilfreich ist.

JAVA lernt E/A-Operationen, Byte-Stream und Zeichen-Stream (zusammenfassende gemeinsame Nutzung)

Empfohlene Studie: „Java-Video-Tutorial

Vorwort: In diesem Kapitel wird die grundlegende Verwendung von Byte-Stream und Zeichen-Stream im Detail vorgestellt, mit Abbildungen und Code-Implementierung.

IO-Betrieb

JAVA lernt E/A-Operationen, Byte-Stream und Zeichen-Stream (zusammenfassende gemeinsame Nutzung)

Byte-Stream

  • Java.io.InputStream-Eingabestream, der hauptsächlich zum Lesen von Dateiinhalten verwendet wird.

  • Java.io.OutputStream-Ausgabestream, der hauptsächlich zum Schreiben von Inhaltsbytes in Dateien verwendet wird.

FileInputStream

Dieser Stream wird zum Lesen von Daten aus einer Datei verwendet und sein Objekt kann mit dem Schlüsselwort new erstellt werden.
Es gibt verschiedene Konstruktormethoden zum Erstellen von Objekten.
Sie können einen Dateinamen vom Typ „String“ verwenden, um ein Eingabestream-Objekt zum Lesen der Datei zu erstellen

InputStream f = new FileInputStream("D:/hello");

Sie können auch ein Dateiobjekt verwenden, um ein Eingabestream-Objekt zum Lesen der Datei zu erstellen. Wir müssen zuerst die Methode File() verwenden, um ein Dateiobjekt zu erstellen:

File f = new File("D:/hello");InputStream in = new FileInputStream(f);

FileOutputStream

Diese Klasse wird verwendet, um eine Datei zu erstellen und Daten in die Datei zu schreiben.
Wenn die Zieldatei nicht existiert, bevor der Stream die Datei zur Ausgabe öffnet, erstellt der Stream die Datei.
Es gibt zwei Konstruktoren, die zum Erstellen von FileOutputStream-Objekten verwendet werden können.
Verwenden Sie einen Dateinamen vom Typ „String“, um ein Ausgabestream-Objekt zu erstellen:

OutputStream f = new FileOutputStream("D:/hello");

Sie können auch ein Dateiobjekt verwenden, um einen Ausgabestream zum Schreiben von Dateien zu erstellen. Wir müssen zuerst die File()-Methode verwenden, um ein Dateiobjekt zu erstellen:

File f = new File("D:/hello");OutputStream fOut = new FileOutputStream(f);

Byte-Stream-Lese- und Schreibfall

Lesen Sie den Inhalt der Datei D:/hello.txt und geben Sie ihn dann in die Datei ein D:/test.

      public class Mk {
        public static void main(String[] args) throws IOException {
            File file=new File("D://hello.txt");
            File file1= new File("D://test.txt");
            InputStream is=new FileInputStream(file);
            OutputStream out=new FileOutputStream(file1);
            //定义byte数组用来暂存数据
            byte[] buf = new byte[1024];
            //读取Is中的内容存到buf
            is.read(buf);
            //将buf中的内容写入out
            out.write(buf);
            is.close();
            out.close();
        }
        }

Zeichenstrom

FileWriter

Instanz der Schreibdatei in txt

public class A {
    public static void main(String[] args) throws IOException {
        FileWriter fw = new FileWriter("user.txt", true);
        fw.write("你好中国1");
        fw.write("你好中国2");
        fw.write("你好中国3");
        fw.close();
    }}

JAVA lernt E/A-Operationen, Byte-Stream und Zeichen-Stream (zusammenfassende gemeinsame Nutzung)
JAVA lernt E/A-Operationen, Byte-Stream und Zeichen-Stream (zusammenfassende gemeinsame Nutzung)

FileReader

Instanz der Lesedatei
Ich habe den Inhalt geändert zu neuen Zeilen hier
JAVA lernt E/A-Operationen, Byte-Stream und Zeichen-Stream (zusammenfassende gemeinsame Nutzung)
br .ready() soll feststellen, ob dieser Zeilenstrom leer ist
br.readLine() dient dazu, eine Zeile auszugeben und dann den Cursor automatisch auf die nächste Zeile zu richten.

public class A {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new FileReader("user.txt"));
        while (br.ready()) {
            System.out.println(br.readLine());
        }
        br.close();
    }}

JAVA lernt E/A-Operationen, Byte-Stream und Zeichen-Stream (zusammenfassende gemeinsame Nutzung)

Der Unterschied zwischen Byte-Stream und Zeichen-Stream

Die Verwendung von Byte-Stream und Zeichen-Stream ist sehr ähnlich. Was sind also die Unterschiede, abgesehen vom Unterschied im Operationscode?

Der Byte-Stream selbst verwendet beim Betrieb keinen Puffer (Speicher), sondern wird direkt mit der Datei selbst betrieben, während der Zeichen-Stream beim Betrieb den Puffer verwendet.
Der Byte-Stream verwendet beim Betrieb einer Datei die Datei wird auch dann ausgegeben, wenn die Ressource nicht geschlossen ist (Close-Methode). Wenn der Zeichenstrom jedoch nicht die Close-Methode verwendet, wird kein Inhalt ausgegeben, was darauf hinweist, dass der Zeichenstrom einen Puffer verwendet und mit der Flush-Methode erzwungen werden kann. Aktualisieren Sie den Puffer, dann kann der Inhalt ohne Schließen ausgegeben werden. Ist es also in der Entwicklung besser, einen Byte-Stream oder einen Zeichen-Stream zu verwenden?

Beim Speichern von Dateien oder beim Übertragen von Dateien auf allen Festplatten erfolgt dies in Bytes, einschließlich Bildern, und Zeichen werden nur im Speicher gebildet, sodass Bytes-Vorgänge am häufigsten verwendet werden. Wenn Sie möchten, dass ein Java-Programm eine Kopierfunktion implementiert, sollten Sie für den Betrieb einen Bytestream verwenden (das Bild kann kopiert werden) und gleichzeitig lesen und schreiben (um Speicher zu sparen).

Empfohlenes Lernen: „
Java-Video-Tutorial

Das obige ist der detaillierte Inhalt vonJAVA lernt E/A-Operationen, Byte-Stream und Zeichen-Stream (zusammenfassende gemeinsame Nutzung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen