I denne vejledning lærer vi om Java BufferedOutputStream og dens metoder ved hjælp af eksempler.
Den BufferedOutputStream
klasse af java.io
pakken anvendes sammen med andre udgangsstrømme til at skrive dataene (i byte) mere effektivt.
Det udvider den OutputStream
abstrakte klasse.
Arbejde med BufferedOutputStream
Den BufferedOutputStream
opretholder 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 BufferedOutputStream
skal vi først importere java.io.BufferedOutputStream
pakken. 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 BufferdOutputStream
navngivet buffer med den FileOutputStream
navngivne 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 BufferedOutputStream
klasse giver implementeringer for forskellige metoder i OutputStream
klassen.
skriv () metode
write()
- skriver en enkelt byte til den interne buffer i outputstrømmenwrite(byte() array)
- skriver bytes fra det specificerede array til output streamwrite(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).