Java BufferedOutputStream (med eksempler)

I denne opplæringen vil vi lære om Java BufferedOutputStream og dens metoder ved hjelp av eksempler.

Den BufferedOutputStreamklasse av java.iopakken brukes sammen med andre utgående strømmer til å skrive dataene (i bytes) mer effektivt.

Det utvider den OutputStreamabstrakte klassen.

Arbeid med BufferedOutputStream

Den BufferedOutputStreamopprettholder en intern buffer på 8192 byte .

Under skriveoperasjonen blir bytene skrevet til den interne bufferen i stedet for disken. Når bufferen er fylt eller strømmen er lukket, skrives hele bufferen til disken.

Derfor reduseres antall kommunikasjoner til disken. Dette er grunnen til at det er raskere å skrive byte BufferedOutputStream.

Opprett en BufferedOutputStream

For å opprette en BufferedOutputStream, må vi importere java.io.BufferedOutputStreampakken først. Når vi først har importert pakken, kan vi lage utgangsstrømmen her.

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

I eksemplet ovenfor har vi opprettet en BufferdOutputStreamnavngitt buffer med den FileOutputStreamnavngitte filen.

Her har den interne bufferen standardstørrelsen på 8192 byte. Vi kan imidlertid også spesifisere størrelsen på den interne bufferen.

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

Bufferen hjelper deg med å skrive byte til filer raskere.

Metoder for BufferedOutputStream

Den BufferedOutputStreamklasse gir implementeringer for ulike metoder i OutputStreamklassen.

skriv () Metode

  • write() - skriver en enkelt byte til den interne bufferen i utgangsstrømmen
  • write(byte() array) - skriver byte fra den spesifiserte matrisen til utgangsstrømmen
  • write(byte() arr, int start, int length) - skriver antall byte som er lik lengden til utgangsstrømmen fra en matrise som starter fra posisjonsstart

Eksempel: BufferedOutputStream for å skrive data til en fil

 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(); ) ) ) 

I eksemplet ovenfor har vi opprettet en bufret utgangsstrøm med navnet output sammen med FileOutputStream. Utgangsstrømmen er koblet til filen output.txt .

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

For å skrive data til filen har vi brukt write()metoden.

Når vi kjører programmet, blir output.txt- filen fylt med følgende innhold.

 This is a line of text inside the file. 

Merk : getBytes()Metoden som brukes i programmet konverterer en streng til en rekke byte.

flush () Metode

For å fjerne den interne bufferen kan vi bruke flush()metoden. Denne metoden tvinger utgangsstrømmen til å skrive alle data som er tilstede i bufferen til målfilen. For eksempel,

 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(); ) ) ) 

Produksjon

 Data skylles til filen. 

Når vi kjører programmet, fylles filen flush.txt med teksten som er representert av strengdataene .

lukk () Metode

For å lukke den bufrede utgangsstrømmen kan vi bruke close()metoden. Når metoden er kalt, kan vi ikke bruke utgangsstrømmen til å skrive dataene.

For å lære mer, besøk Java BufferedOutputStream (offisiell Java-dokumentasjon).

Interessante artikler...