Java BufferedOutputStream (med eksempler)

I denne vejledning lærer vi om Java BufferedOutputStream og dens metoder ved hjælp af eksempler.

Den BufferedOutputStreamklasse af java.iopakken anvendes sammen med andre udgangsstrømme til at skrive dataene (i byte) mere effektivt.

Det udvider den OutputStreamabstrakte klasse.

Arbejde med BufferedOutputStream

Den BufferedOutputStreamopretholder en intern buffer på 8192 byte .

Under skriveoperationen skrives byte til den interne buffer i stedet for disken. Når bufferen er fyldt, eller strømmen er lukket, skrives hele bufferen til disken.

Derfor reduceres antallet af kommunikation til disken. Dette er grunden til at skrive bytes er hurtigere at bruge BufferedOutputStream.

Opret en BufferedOutputStream

For at oprette en BufferedOutputStreamskal vi først importere java.io.BufferedOutputStreampakken. Når vi først har importeret pakken, kan vi oprette outputstrømmen her.

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

I ovenstående eksempel har vi oprettet en BufferdOutputStreamnavngivet buffer med den FileOutputStreamnavngivne fil.

Her har den interne buffer standardstørrelse på 8192 bytes. Vi kan dog også specificere størrelsen på den interne buffer.

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

Bufferen hjælper med at skrive bytes til filer hurtigere.

Metoder til BufferedOutputStream

Den BufferedOutputStreamklasse giver implementeringer for forskellige metoder i OutputStreamklassen.

skriv () metode

  • write() - skriver en enkelt byte til den interne buffer i outputstrømmen
  • write(byte() array) - skriver bytes fra det specificerede array til output stream
  • write(byte() arr, int start, int length) - skriver antallet af byte svarende til længden til outputstrømmen fra en matrix startende fra positionens start

Eksempel: BufferedOutputStream til at 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 ovenstående eksempel har vi oprettet en bufferet outputstrøm med navnet output sammen med FileOutputStream. Outputstrømmen er knyttet til filen output.txt .

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

For at skrive data til filen har vi brugt write()metoden.

Her, når vi kører programmet, udfyldes output.txt- filen med følgende indhold.

 This is a line of text inside the file. 

Bemærk : Den getBytes()metode, der bruges i programmet, konverterer en streng til en række bytes.

flush () Metode

For at rydde den interne buffer kan vi bruge flush()metoden. Denne metode tvinger outputstrømmen til at skrive alle data, der er til stede i bufferen, til destinationsfilen. 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(); ) ) ) 

Produktion

 Data skylles til filen. 

Når vi kører programmet, udfyldes filen flush.txt med teksten repræsenteret af strengdataene.

close () Metode

For at lukke den buffrede outputstrøm kan vi bruge close()metoden. Når metoden er kaldt, kan vi ikke bruge outputstrømmen til at skrive dataene.

For at lære mere, besøg Java BufferedOutputStream (officiel Java-dokumentation).

Interessante artikler...