V tej vadnici bomo s pomočjo primerov spoznali Javo BufferedOutputStream in njene metode.
BufferedOutputStream
Razred java.io
paketa se uporablja z drugimi izhodnih tokov za bolj učinkovito pisanje podatkov (v bajtih).
Razširja OutputStream
abstraktni razred.
Delovanje BufferedOutputStream
BufferedOutputStream
Ohranja 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.BufferedOutputStream
paket. 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 BufferdOutputStream
z FileOutputStream
imenovano 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
BufferedOutputStream
Razred določa izvedb za različne metode v OutputStream
razredu.
metoda write ()
write()
- zapiše en bajt v notranji medpomnilnik izhodnega tokawrite(byte() array)
- zapisuje bajte iz podane matrike v izhodni tokwrite(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).