În acest tutorial, vom afla despre Java BufferedOutputStream și metodele sale cu ajutorul unor exemple.
BufferedOutputStream
Clasa a java.io
pachetului este utilizat cu alte fluxuri de ieșire pentru a scrie datele (în bytes) mai eficient.
Extinde OutputStream
clasa abstractă.
Funcționarea BufferedOutputStream
BufferedOutputStream
Menț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 BufferdOutputStream
tampon numit cu FileOutputStream
fiș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
BufferedOutputStream
Clasa oferă implementări pentru diferite metode din OutputStream
clasa.
write () Metoda
write()
- scrie un singur octet în bufferul intern al fluxului de ieșirewrite(byte() array)
- scrie octeții din matricea specificată în fluxul de ieșirewrite(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).