Java BufferedOutputStream (met voorbeelden)

In deze tutorial leren we met behulp van voorbeelden over Java BufferedOutputStream en zijn methoden.

De BufferedOutputStreamklasse van het java.iopakket wordt gebruikt met andere uitvoerstromen om de gegevens (in bytes) efficiënter te schrijven.

Het breidt de OutputStreamabstracte klasse uit.

Werken met BufferedOutputStream

Het BufferedOutputStreamonderhoudt 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 met de schijf verminderd. Dit is de reden waarom het schrijven van bytes sneller gaat met BufferedOutputStream.

Maak een BufferedOutputStream

Om een ​​te maken BufferedOutputStream, moeten we eerst het java.io.BufferedOutputStreampakket importeren . Zodra we het pakket hebben geïmporteerd, is hier hoe we de uitvoerstroom kunnen 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 BufferdOutputStreambenoemde buffer gemaakt met het FileOutputStreamgenoemde 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 helpt om sneller bytes naar bestanden te schrijven.

Methoden van BufferedOutputStream

De BufferedOutputStreamklasse biedt implementaties voor verschillende methoden in de OutputStreamklasse.

write () methode

  • write() - schrijft een enkele byte naar de interne buffer van de uitvoerstroom
  • write(byte() array) - schrijft de bytes van de opgegeven array naar de uitvoerstroom
  • write(byte() arr, int start, int length) - schrijft het aantal bytes dat gelijk is aan de lengte naar de uitvoerstroom vanuit een array vanaf het begin van de positie

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 outputstroom 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()methode gebruikt.

Hier wanneer we het programma uitvoeren, wordt het bestand output.txt gevuld met de volgende inhoud.

 This is a line of text inside the file. 

Opmerking : de getBytes()methode die in het programma wordt gebruikt, zet een string om in een array van bytes.

flush () methode

Om de interne buffer leeg te maken, kunnen we de flush()methode gebruiken. Deze methode dwingt de uitvoerstroom om alle gegevens in de buffer naar het bestemmingsbestand 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

 De gegevens worden naar het bestand gespoeld. 

Wanneer we het programma uitvoeren, wordt het bestand flush.txt gevuld met de tekst die wordt vertegenwoordigd door de stringgegevens .

close () Methode

Om de gebufferde outputstroom te sluiten, kunnen we de close()methode gebruiken. 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).

Interessante artikelen...