English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial lernen wir durch Beispiele Java BufferedOutputStream und seine Methoden kennen.
Die Klasse BufferedOutputStream im Paket java.io wird zusammen mit anderen Ausgabestromen verwendet, um Daten effizienter zu schreiben (in Form von Bytes).
Es hat die abstrakte Klasse OutputStream geerbt.
BufferedOutputStream unterhält einen8192Bytesdes internen Puffers.
Während des Schreibvorgangs werden Bytes nicht direkt in die Festplatte, sondern in den internen Puffer geschrieben. Sobald der Puffer gefüllt ist oder der Stream geschlossen wird, wird der gesamte Puffer auf die Festplatte geschrieben.
Dadurch wird die Anzahl der Kommunikationen mit der Festplatte reduziert. Dies ist der Grund, warum das Schreiben von Bytes mit BufferedOutputStream schneller ist.
Um einen BufferedOutputStream zu erstellen, müssen wir zunächst das Paket java.io.BufferedOutputStream importieren. Nach dem Importieren des Pakets können wir den Ausgabestrom erstellen.
//Eine FileOutputStream wird erstellt. FileOutputStream file = new FileOutputStream(String path); //Erstellen Sie einen BufferedOutputStream BufferedOutputStream buffer = new BufferedOutputStream(file);
Im obigen Beispiel haben wir einen BufferedOutputStream namens buffer erstellt und einen FileOutputStream namens file verwendet.
Hier beträgt die Standardgröße des internen Puffers8192Bytes. Aber wir können auch die Größe des internen Puffers angeben.
//Erstellen Sie einen BufferedOutputStream mit einer bestimmten Größe des internen Puffers. BufferedOutputStream buffer = new BufferedOutputStream(file, int size);
Dieser Puffer hilft dabei, Bytes schneller in die Datei zu schreiben.
Die Klasse BufferedOutputStream bietet verschiedene Methoden zur Implementierung in der Klasse OutputStream.
write() - Schreibt ein einzelnes Byte in den internen Puffer des Ausgabestroms
write(byte[] array) - Schreibt die Bytes aus dem angegebenen Array in den Ausgabestrom
write(byte[] arr, int start, int length)- Von der Position start an werden gleich viele Bytes wie length aus dem Array in den Ausgabestrom geschrieben
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 { //Eine FileOutputStream wird erstellt. FileOutputStream file = new FileOutputStream("output.txt"); //Erstellen Sie einen BufferedOutputStream BufferedOutputStream output = new BufferedOutputStream(file); byte[] array = data.getBytes(); //Daten in den Ausgabestream schreiben output.write(array); output.close(); } catch (Exception e) { e.getStackTrace(); } } }
Im obigen Beispiel haben wir einen benannten Puffer-Output-Stream und FileOutputStream erstellt. Der Ausgabestrom ist mit der Datei output.txt verbunden.
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,output.txtDer Text wird in die folgende Datei geschrieben.
This is a line of text inside the file.
Hinweis:Um einen String in ein Byte-Array zu konvertieren, wird die getBytes()-Methode im Programm verwendet.
Um den internen Puffer zu leeren, können wir die flush()-Methode verwenden. Diese Methode erzwingt, dass der Ausgabestrom alle Daten im Puffer in die Zieldatei schreibt. Zum Beispiel,
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 { //Eine FileOutputStream wird erstellt. FileOutputStream file = new FileOutputStream("flush.txt"); //Erstellen Sie einen BufferedOutputStream BufferedOutputStream buffer = new BufferedOutputStream(file); //Daten in den Ausgabestream schreiben buffer.write(data.getBytes()); //Daten in das Ziel einfügen buffer.flush(); System.out.println("Daten werden in die Datei gepusht."); buffer.close(); } catch(Exception e) { e.getStackTrace(); } } }
Ausgaberesultat
Daten werden in die Datei gepusht.
Wenn wir das Programm ausführen, wird die Datei flush.txt mit Textdaten gefüllt, die von einer Zeichenkette dargestellt werden.
Um einen ausgabezentrierten Stream zu schließen, können wir die close()-Methode verwenden. Nach dem Aufruf dieser Methode können wir den Ausgabestream nicht mehr zum Schreiben von Daten verwenden.