I denne opplæringen vil vi lære om Java BufferedOutputStream og dens metoder ved hjelp av eksempler.
Den BufferedOutputStream
klasse av java.io
pakken brukes sammen med andre utgående strømmer til å skrive dataene (i bytes) mer effektivt.
Det utvider den OutputStream
abstrakte klassen.
Arbeid med BufferedOutputStream
Den BufferedOutputStream
opprettholder 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.BufferedOutputStream
pakken 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 BufferdOutputStream
navngitt buffer med den FileOutputStream
navngitte 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 BufferedOutputStream
klasse gir implementeringer for ulike metoder i OutputStream
klassen.
skriv () Metode
write()
- skriver en enkelt byte til den interne bufferen i utgangsstrømmenwrite(byte() array)
- skriver byte fra den spesifiserte matrisen til utgangsstrømmenwrite(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).