Heim  >  Artikel  >  Java  >  Tipps zur Verwendung von Java Streams für die Dateieingabe/-ausgabe

Tipps zur Verwendung von Java Streams für die Dateieingabe/-ausgabe

PHPz
PHPzOriginal
2024-07-21 15:06:38856Durchsuche

Was ist Java Input/Output?

Java Input/Output (I/O) wird verwendet, um Eingaben zu verarbeiten und Ausgaben in Form von Dateien zu generieren. Java verwendet das Konzept von Streams, das schnelle I/O-Vorgänge ermöglicht.
Mit dem java.io-Paket können alle Ein- und Ausgabevorgänge problemlos durchgeführt werden.

Verarbeiten von Dateien in Java mithilfe der Eingabe/Ausgabe

Streams

Streams können als eine aus Bytes bestehende Datensequenz definiert werden. Es wird Bach genannt, weil es wie ein Wasserstrom ist, der weiter fließt. Es gibt zwei Arten von Streams:

Eingabestream: Wird zum Lesen von Daten aus einer Quelle verwendet. Dies kann eine Datei, ein Array, ein Peripheriegerät oder ein Socket sein.
Ausgabestream: Wird zum Schreiben von Daten an ein Ziel verwendet. Dies kann eine Datei, ein Array, ein Peripheriegerät oder ein Socket sein.
Der Ablauf für einen Eingabestream ist unten dargestellt:

Image description

Byte zum Streamen

Java-Byte-Streams werden für die Ein- und Ausgabe von 8-Bit-Bytes verwendet. Es folgt ein Beispiel, das diese beiden Klassen nutzt, um eine Eingabedatei in eine Ausgabedatei zu kopieren −

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class LearnStream {
    public static void main(String[] args) throws IOException {

       var directory = "D://sample/stream/";
       var fileInput = new FileInputStream(directory+"input.txt");
       var fileOutput = new FileOutputStream(directory+"output.txt");

       try{
           int i;
           while((i= fileInput.read())!=-1){
               fileOutput.write(i);
           }
       } catch (IOException e) {
           throw new RuntimeException(e);
       }

    }

}

Jetzt erstellen wir eine Datei input.txt mit folgendem Inhalt

Dimas Priyandi
Software Developer
Java
Angular 
Spring Boot

Programm ausführen und wir erhalten eine Datei mit dem Namen „output.txt“ und folgendem Inhalt

Dimas Priyandi
Software Developer
Java
Angular 
Spring Boot

Beispiel

Um Dateieingabeströme und Dateiausgabeströme besser zu verstehen, erstellen wir ein neues Beispiel, in dem wir eine Eingabedatei mit dem Namen count.txt haben.

Der Inhalt von count.txt lautet wie folgt:

100
90
80
70
60
50
40
30
20
10
0

Wenn der File Input Stream die numerischen Daten aus der Datei count.txt liest, speichern wir sie in einem Array und führen dann eine Summationsoperation durch, um die Gesamtsumme der Daten zu berechnen. Bitte befolgen Sie den folgenden Programmcode:

import java.io.*;

public class LeanCount {
    public static void main(String[] args) throws FileNotFoundException {
        var directory = "D://sample/stream/";
        var fileInput = new FileInputStream(directory+"count.txt");
        var fileOutput = new FileOutputStream(directory+"sum.txt");
        Integer sum = 0;
        try{
            var reader = new BufferedReader(new InputStreamReader(fileInput));
            var outputWriter = new BufferedWriter(new OutputStreamWriter(fileOutput));
            String line;
            while((line=reader.readLine()) !=null){
                sum+=Integer.parseInt(line);
            }
            reader.close();
            outputWriter.write(sum.toString());
            outputWriter.close();


        } catch (IOException e) {
            throw new RuntimeException(e);
        }

    }

    }



Ausgabe:

  • Wir können sehen, dass die Ausgabe von sum.txt lautet:
550

Erklärung:

  • FileInputStream: Wird zum Lesen von Bytes aus der Datei count.txt verwendet.
  • InputStreamReader: Konvertiert die von FileInputStream gelesenen Bytes in Zeichen.
  • BufferedReader: Stellt die Methode readLine() bereit, um die Datei Zeile für Zeile zu lesen.
  • Zahlen-Array: Ein ganzzahliges Array zum Speichern der aus der Datei gelesenen Zahlen.
  • Summenberechnung: Eine Schleife zum Summieren aller im Array gespeicherten Zahlen.
  • FileOutputStream: Wird verwendet, um Bytes in die Datei zu schreiben.
  • OutputStreamWriter: Konvertiert den Zeichenstrom in einen Bytestrom.
  • BufferedWriter: Bietet Pufferung zum effizienten Schreiben von Zeichen, Arrays und Zeilen.

Zusammenfassung

Die I/O-Streams von Java bieten eine leistungsstarke Möglichkeit, Dateivorgänge abzuwickeln. Durch die Verwendung von InputStream und OutputStream und ihren gepufferten Gegenstücken können Sie effizient aus Dateien lesen und in Dateien schreiben.

Das obige ist der detaillierte Inhalt vonTipps zur Verwendung von Java Streams für die Dateieingabe/-ausgabe. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn