Java BufferedOutputStream Class
Java BufferedOutputStream-klasse
In deze zelfstudie leren we over Java BufferedOutputStream en zijn methoden met behulp van voorbeelden.
De BufferedOutputStream
klasse van de java.io
pakket wordt gebruikt met andere uitvoerstromen om de gegevens (in bytes) efficiënter te schrijven.
Het verlengt de OutputStream
abstracte klas.
Werking van BufferedOutputStream
De BufferedOutputStream
onderhoudt een interne buffer van 8192 bytes .
Tijdens de schrijfbewerking worden de bytes naar de interne buffer geschreven in plaats van naar de schijf. Zodra de buffer is gevuld of de stream is gesloten, wordt de hele buffer naar de schijf geschreven.
Daarom wordt het aantal communicatie naar de schijf verminderd. Dit is de reden waarom het schrijven van bytes sneller gaat met BufferedOutputStream
.
Maak een BufferedOutputStream
Om een BufferedOutputStream
. te maken , moeten we de java.io.BufferedOutputStream
. importeren pakket eerst. Zodra we het pakket hebben geïmporteerd, kunnen we hier de uitvoerstroom maken.
// Creates a FileOutputStream
FileOutputStream file = new FileOutputStream(String path);
// Creates a BufferedOutputStream
BufferedOutputStream buffer = new BufferOutputStream(file);
In het bovenstaande voorbeeld hebben we een BufferdOutputStream
. gemaakt genaamd buffer met de FileOutputStream
genaamd bestand .
Hier heeft de interne buffer de standaardgrootte van 8192 bytes. We kunnen echter ook de grootte van de interne buffer specificeren.
// Creates a BufferedOutputStream with specified size internal buffer
BufferedOutputStream buffer = new BufferOutputStream(file, int size);
De buffer zal helpen om sneller bytes naar bestanden te schrijven.
Methoden van BufferedOutputStream
De BufferedOutputStream
class biedt implementaties voor verschillende methoden in de OutputStream
klasse.
write()-methode
write()
- schrijft een enkele byte naar de interne buffer van de uitvoerstroomwrite(byte[] array)
- schrijft de bytes van de opgegeven array naar de uitvoerstroomwrite(byte[] arr, int start, int length)
- schrijft het aantal bytes gelijk aan lengte naar de uitvoerstroom van een array beginnend vanaf de positie start
Voorbeeld:BufferedOutputStream om gegevens naar een bestand te schrijven
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();
}
}
}
In het bovenstaande voorbeeld hebben we een gebufferde uitvoerstroom gemaakt met de naam output samen met FileOutputStream
. De uitvoerstroom is gekoppeld aan het bestand output.txt .
FileOutputStream file = new FileOutputStream("output.txt");
BufferedOutputStream output = new BufferedOutputStream(file);
Om gegevens naar het bestand te schrijven, hebben we de write()
. gebruikt methode.
Hier wanneer we het programma uitvoeren, de output.txt bestand is gevuld met de volgende inhoud.
This is a line of text inside the file.
Opmerking :De getBytes()
methode die in het programma wordt gebruikt, converteert een string naar een array van bytes.
flush()-methode
Om de interne buffer te wissen, kunnen we de flush()
. gebruiken methode. Deze methode dwingt de uitvoerstroom om alle gegevens in de buffer naar het doelbestand te schrijven. Bijvoorbeeld,
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();
}
}
}
Uitvoer
Data is flushed to the file.
Wanneer we het programma uitvoeren, wordt het bestand flush.txt is gevuld met de tekst die wordt weergegeven door de tekenreeks data .
close()-methode
Om de gebufferde uitvoerstroom te sluiten, kunnen we de close()
. gebruiken methode. Als de methode eenmaal is aangeroepen, kunnen we de uitvoerstroom niet gebruiken om de gegevens te schrijven.
Ga voor meer informatie naar Java BufferedOutputStream (officiële Java-documentatie).
Java