Java BufferedOutputStream (cu exemple)

În acest tutorial, vom afla despre Java BufferedOutputStream și metodele sale cu ajutorul unor exemple.

BufferedOutputStreamClasa a java.iopachetului este utilizat cu alte fluxuri de ieșire pentru a scrie datele (în bytes) mai eficient.

Extinde OutputStreamclasa abstractă.

Funcționarea BufferedOutputStream

BufferedOutputStreamMenține un intern tampon de 8192 octeți .

În timpul operației de scriere, octeții se scriu în buffer-ul intern în locul discului. Odată ce tamponul este umplut sau fluxul este închis, întregul buffer este scris pe disc.

Prin urmare, numărul de comunicații pe disc este redus. Acesta este motivul pentru care scrierea octeților este mai rapidă BufferedOutputStream.

Creați un BufferedOutputStream

Pentru a crea un BufferedOutputStream, trebuie să importăm mai java.io.BufferedOutputStreamîntâi pachetul. Odată ce am importat pachetul, iată cum putem crea fluxul de ieșire.

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

În exemplul de mai sus, am creat un BufferdOutputStreamtampon numit cu FileOutputStreamfișierul numit.

Aici, tamponul intern are dimensiunea implicită de 8192 octeți. Cu toate acestea, putem specifica și dimensiunea bufferului intern.

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

Tamponul va ajuta la scrierea mai rapidă a octeților în fișiere.

Metode BufferedOutputStream

BufferedOutputStreamClasa oferă implementări pentru diferite metode din OutputStreamclasa.

write () Metoda

  • write() - scrie un singur octet în bufferul intern al fluxului de ieșire
  • write(byte() array) - scrie octeții din matricea specificată în fluxul de ieșire
  • write(byte() arr, int start, int length) - scrie numărul de octeți egal cu lungimea în fluxul de ieșire dintr-un tablou începând de la începutul poziției

Exemplu: BufferedOutputStream pentru a scrie date într-un fișier

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

În exemplul de mai sus, am creat un flux de ieșire tamponat numit ieșire împreună cu FileOutputStream. Fluxul de ieșire este legat de fișierul output.txt .

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

Pentru a scrie date în fișier, am folosit write()metoda.

Aici, când rulăm programul, fișierul output.txt este umplut cu următorul conținut.

 This is a line of text inside the file. 

Notă : getBytes()Metoda utilizată în program convertește un șir într-o matrice de octeți.

flush () Metoda

Pentru a goli tamponul intern, putem folosi flush()metoda. Această metodă forțează fluxul de ieșire să scrie toate datele prezente în buffer în fișierul destinație. De exemplu,

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

Ieșire

 Datele sunt transferate în fișier. 

Când rulăm programul, fișierul flush.txt este umplut cu textul reprezentat de datele șirului.

close () Metoda

Pentru a închide fluxul de ieșire tamponat, putem folosi close()metoda. Odată apelată metoda, nu putem folosi fluxul de ieșire pentru a scrie datele.

Pentru a afla mai multe, vizitați Java BufferedOutputStream (documentație oficială Java).

Articole interesante...