Java BufferedOutputStream (z primeri)

V tej vadnici bomo s pomočjo primerov spoznali Javo BufferedOutputStream in njene metode.

BufferedOutputStreamRazred java.iopaketa se uporablja z drugimi izhodnih tokov za bolj učinkovito pisanje podatkov (v bajtih).

Razširja OutputStreamabstraktni razred.

Delovanje BufferedOutputStream

BufferedOutputStreamOhranja notranji medpomnilnik 8192 bajtov .

Med operacijo pisanja se bajti zapišejo v notranji vmesnik namesto na disk. Ko je vmesnik napolnjen ali tok zaprt, se celoten vmesnik zapiše na disk.

Zato se zmanjša število komunikacij na disk. Zato je pisanje bajtov hitrejše BufferedOutputStream.

Ustvarite BufferedOutputStream

Če želite ustvariti a BufferedOutputStream, moramo najprej uvoziti java.io.BufferedOutputStreampaket. Ko uvozimo paket, je tukaj, kako lahko ustvarimo izhodni tok.

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

V zgornjem primeru smo BufferdOutputStreamz FileOutputStreamimenovano datoteko ustvarili imenovani vmesni pomnilnik .

Tu ima privzeta velikost notranjega medpomnilnika 8192 bajtov. Lahko pa določimo tudi velikost notranjega vmesnega pomnilnika.

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

Medpomnilnik bo pomagal hitreje zapisati bajte v datoteke.

Metode BufferedOutputStream

BufferedOutputStreamRazred določa izvedb za različne metode v OutputStreamrazredu.

metoda write ()

  • write() - zapiše en bajt v notranji medpomnilnik izhodnega toka
  • write(byte() array) - zapisuje bajte iz podane matrike v izhodni tok
  • write(byte() arr, int start, int length) - zapisuje število bajtov, enako dolžini, v izhodni tok iz polja, začenši z začetkom položaja

Primer: BufferedOutputStream za zapisovanje podatkov v datoteko

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

V zgornjem primeru smo ustvarili medpomnjeni izhodni tok z imenom output skupaj z FileOutputStream. Izhodni tok je povezan z datoteko output.txt .

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

Za zapisovanje podatkov v datoteko smo uporabili write()metodo.

Ko zaženemo program, je datoteka output.txt napolnjena z naslednjo vsebino.

 This is a line of text inside the file. 

Opomba : getBytes()Metoda, uporabljena v programu, pretvori niz v niz bajtov.

flush () metoda

Za čiščenje notranjega medpomnilnika lahko uporabimo flush()metodo. Ta metoda prisili izhodni tok, da v ciljno datoteko zapiše vse podatke v vmesnem pomnilniku. Na primer

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

Izhod

 Podatki se odstranijo v datoteko. 

Ko zaženemo program, se datoteka flush.txt napolni z besedilom, ki ga predstavljajo nizovni podatki.

metoda close ()

Za zapiranje medpomnilnika izhodnega toka lahko uporabimo close()metodo. Ko je metoda enkrat poklicana, za zapis podatkov ne moremo uporabiti izhodnega toka.

Če želite izvedeti več, obiščite Java BufferedOutputStream (uradna dokumentacija Java).

Zanimive Članki...