In diesem Tutorial lernen wir anhand von Beispielen Java BufferedOutputStream und seine Methoden kennen.
Die BufferedOutputStream
Klasse des java.io
Pakets wird mit anderen Ausgabestreams verwendet, um die Daten (in Bytes) effizienter zu schreiben.
Es erweitert die OutputStream
abstrakte Klasse.
Funktionieren von BufferedOutputStream
Der BufferedOutputStream
verwaltet 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.BufferedOutputStream
zuerst 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 BufferdOutputStream
benannten Puffer mit der FileOutputStream
benannten 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 BufferedOutputStream
Klasse bietet Implementierungen für verschiedene Methoden in der OutputStream
Klasse.
write () Methode
write()
- schreibt ein einzelnes Byte in den internen Puffer des Ausgabestreamswrite(byte() array)
- schreibt die Bytes aus dem angegebenen Array in den Ausgabestreamwrite(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).