Java BufferedOutputStream (mit Beispielen)

In diesem Tutorial lernen wir anhand von Beispielen Java BufferedOutputStream und seine Methoden kennen.

Die BufferedOutputStreamKlasse des java.ioPakets wird mit anderen Ausgabestreams verwendet, um die Daten (in Bytes) effizienter zu schreiben.

Es erweitert die OutputStreamabstrakte Klasse.

Funktionieren von BufferedOutputStream

Der BufferedOutputStreamverwaltet einen internen Puffer von 8192 Bytes .

Während des Schreibvorgangs werden die Bytes anstelle der Festplatte in den internen Puffer geschrieben. Sobald der Puffer gefüllt oder der Stream geschlossen ist, wird der gesamte Puffer auf die Festplatte geschrieben.

Daher wird die Anzahl der Kommunikation mit der Platte reduziert. Aus diesem Grund ist das Schreiben von Bytes schneller BufferedOutputStream.

Erstellen Sie einen BufferedOutputStream

Um ein zu erstellen BufferedOutputStream, müssen wir java.io.BufferedOutputStreamzuerst das Paket importieren . Sobald wir das Paket hier importiert haben, können wir den Ausgabestream erstellen.

 // Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String path); // Creates a BufferedOutputStream BufferedOutputStream buffer = new BufferOutputStream(file); 

Im obigen Beispiel haben wir einen BufferdOutputStreambenannten Puffer mit der FileOutputStreambenannten Datei erstellt.

Hier hat der interne Puffer die Standardgröße von 8192 Bytes. Wir können jedoch auch die Größe des internen Puffers angeben.

 // Creates a BufferedOutputStream with specified size internal buffer BufferedOutputStream buffer = new BufferOutputStream(file, int size); 

Der Puffer hilft dabei, Bytes schneller in Dateien zu schreiben.

Methoden von BufferedOutputStream

Die BufferedOutputStreamKlasse bietet Implementierungen für verschiedene Methoden in der OutputStreamKlasse.

write () Methode

  • write() - schreibt ein einzelnes Byte in den internen Puffer des Ausgabestreams
  • write(byte() array) - schreibt die Bytes aus dem angegebenen Array in den Ausgabestream
  • write(byte() arr, int start, int length) - schreibt die Anzahl der Bytes gleich der Länge des Ausgabestreams aus einem Array ab dem Positionsstart

Beispiel: BufferedOutputStream zum Schreiben von Daten in eine Datei

 import java.io.FileOutputStream; import java.io.BufferedOutputStream; public class Main ( public static void main(String() args) ( String data = "This is a line of text inside the file"; try ( // Creates a FileOutputStream FileOutputStream file = new FileOutputStream("output.txt"); // Creates a BufferedOutputStream BufferedOutputStream output = new BufferedOutputStream(file); byte() array = data.getBytes(); // Writes data to the output stream output.write(array); output.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Im obigen Beispiel haben wir einen gepufferten Ausgabestream mit dem Namen output zusammen mit erstellt FileOutputStream. Der Ausgabestream ist mit der Datei output.txt verknüpft .

 FileOutputStream file = new FileOutputStream("output.txt"); BufferedOutputStream output = new BufferedOutputStream(file); 

Um Daten in die Datei zu schreiben, haben wir die write()Methode verwendet.

Wenn wir das Programm ausführen , wird die Datei output.txt mit dem folgenden Inhalt gefüllt.

 This is a line of text inside the file. 

Hinweis : Die getBytes()im Programm verwendete Methode konvertiert eine Zeichenfolge in ein Array von Bytes.

flush () Methode

Um den internen Puffer zu löschen, können wir die flush()Methode verwenden. Diese Methode zwingt den Ausgabestream, alle im Puffer vorhandenen Daten in die Zieldatei zu schreiben. Beispielsweise,

 import java.io.FileOutputStream; import java.io.BufferedOutputStream; public class Main ( public static void main(String() args) ( String data = "This is a demo of the flush method"; try ( // Creates a FileOutputStream FileOutputStream file = new FileOutputStream(" flush.txt"); // Creates a BufferedOutputStream BufferedOutputStream buffer = new BufferedOutputStream(file); // Writes data to the output stream buffer.write(data.getBytes()); // Flushes data to the destination buffer.flush(); System.out.println("Data is flushed to the file."); buffer.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Ausgabe

 Daten werden in die Datei geschrieben. 

Wenn wir das Programm ausführen, wird die Datei flush.txt mit dem Text gefüllt, der durch die Zeichenfolgendaten dargestellt wird.

close () Methode

Um den gepufferten Ausgabestream zu schließen, können wir die close()Methode verwenden. Sobald die Methode aufgerufen wurde, können wir den Ausgabestream nicht mehr zum Schreiben der Daten verwenden.

Weitere Informationen finden Sie unter Java BufferedOutputStream (offizielle Java-Dokumentation).

Interessante Beiträge...