Java BufferedOutputStream (med exempel)

I den här handledningen lär vi oss om Java BufferedOutputStream och dess metoder med hjälp av exempel.

Paketets BufferedOutputStreamklass java.ioanvänds med andra utgångsströmmar för att skriva data (i byte) mer effektivt.

Det utvidgar den OutputStreamabstrakta klassen.

Arbeta med BufferedOutputStream

Den BufferedOutputStreamupprätthåller en intern buffert på 8192 byte .

Under skrivoperationen skrivs byten till den interna bufferten istället för disken. När bufferten har fyllts eller strömmen är stängd skrivs hela bufferten till disken.

Följaktligen minskar antalet kommunikationer till skivan. Det är därför som det går snabbare att skriva byte BufferedOutputStream.

Skapa en BufferedOutputStream

För att skapa ett BufferedOutputStreammåste vi först importera java.io.BufferedOutputStreampaketet. När vi väl har importerat paketet här kan vi skapa utdataströmmen.

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

I exemplet ovan har vi skapat en BufferdOutputStreamnamngiven buffert med den FileOutputStreamnamngivna filen.

Här har den interna bufferten standardstorleken 8192 byte. Vi kan dock också specificera storleken på den interna bufferten.

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

Bufferten hjälper till att skriva byte till filer snabbare.

Metoder för BufferedOutputStream

I BufferedOutputStreamklassen ger implementationer för olika metoder i OutputStreamklassen.

skriv () Metod

  • write() - skriver en enda byte till den interna bufferten i utdataströmmen
  • write(byte() array) - skriver bytes från den angivna matrisen till utflödet
  • write(byte() arr, int start, int length) - skriver antalet byte som är lika med längden till utmatningsströmmen från en matris som börjar från positionsstart

Exempel: BufferedOutputStream för att skriva data till 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 exemplet ovan har vi skapat en buffrad utgångsström med namnet output tillsammans med FileOutputStream. Utgångsströmmen är länkad till filen output.txt .

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

För att skriva data till filen har vi använt write()metoden.

Här när vi kör programmet fylls output.txt- filen med följande innehåll.

 This is a line of text inside the file. 

Obs : Den getBytes()metod som används i programmet omvandlar en sträng till en array av bytes.

flush () Metod

För att rensa den interna bufferten kan vi använda flush()metoden. Denna metod tvingar utflödet att skriva all data som finns i bufferten till målfilen. Till exempel,

 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 spolas till filen. 

När vi kör programmet fylls filen flush.txt med texten som representeras av strängdata.

close () Metod

För att stänga den buffrade utmatningsströmmen kan vi använda close()metoden. När metoden har anropats kan vi inte använda utdataströmmen för att skriva data.

För att lära dig mer, besök Java BufferedOutputStream (officiell Java-dokumentation).

Intressanta artiklar...