U ovom uputstvu uz primjere ćemo naučiti o Javi BufferedOutputStream i njegovim metodama.
BufferedOutputStream
Razred java.io
paket se koristi s drugim izlaznim tokovima za zapisivanje podataka (u bajtovima) učinkovitije.
Proširuje OutputStream
apstraktnu klasu.
Rad BufferedOutputStream
BufferedOutputStream
Održava unutarnju tampon od 8192 bajtova .
Tijekom operacije pisanja bajtovi se zapisuju u interni međuspremnik umjesto na disk. Jednom kada se međuspremnik napuni ili tok zatvori, cijeli se međuspremnik zapisuje na disk.
Stoga se smanjuje broj komunikacije s diskom. Zbog toga se pisanje bajtova brže koristi BufferedOutputStream
.
Stvorite BufferedOutputStream
Da bismo stvorili BufferedOutputStream
, prvo moramo uvesti java.io.BufferedOutputStream
paket. Jednom kada uvozimo paket, evo kako možemo stvoriti izlazni tok.
// Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String path); // Creates a BufferedOutputStream BufferedOutputStream buffer = new BufferOutputStream(file);
U gornjem primjeru stvorili smo BufferdOutputStream
imenovani međuspremnik s FileOutputStream
imenovanom datotekom.
Ovdje unutarnji međuspremnik ima zadanu veličinu od 8192 bajta. Međutim, možemo odrediti i veličinu unutarnjeg međuspremnika.
// Creates a BufferedOutputStream with specified size internal buffer BufferedOutputStream buffer = new BufferOutputStream(file, int size);
Me uspremnik pomoći će bržem pisanju bajtova u datoteke.
Metode BufferedOutputStream
BufferedOutputStream
Klasa pruža implementacije za različite metode u OutputStream
klasi.
metoda write ()
write()
- zapisuje jedan bajt u interni međuspremnik izlaznog tokawrite(byte() array)
- zapisuje bajtove iz navedenog polja u izlazni tokwrite(byte() arr, int start, int length)
- zapisuje broj bajtova jednak duljini u izlazni tok iz polja počevši od početka položaja
Primjer: BufferedOutputStream za upisivanje podataka u datoteku
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(); ) ) )
U gornjem primjeru stvorili smo me uspremljeni izlazni tok nazvan output zajedno sa FileOutputStream
. Izlazni tok povezan je s datotekom output.txt .
FileOutputStream file = new FileOutputStream("output.txt"); BufferedOutputStream output = new BufferedOutputStream(file);
Za pisanje podataka u datoteku koristili smo write()
metodu.
Ovdje kada pokrenemo program, datoteka output.txt puni se sljedećim sadržajem.
This is a line of text inside the file.
Napomena : getBytes()
Metoda korištena u programu pretvara niz u niz bajtova.
flush () metoda
Da bismo očistili unutarnji međuspremnik, možemo se poslužiti flush()
metodom. Ova metoda prisiljava izlazni tok na upis svih podataka prisutnih u međuspremnik u odredišnu datoteku. Na primjer,
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(); ) ) )
Izlaz
Podaci se prebacuju u datoteku.
Kada pokrenemo program, datoteka flush.txt ispunjava se tekstom predstavljenim nizom podataka.
close () Metoda
Da bismo zatvorili me uspremljeni izlazni tok, možemo koristiti close()
metodu. Jednom kada se metoda pozove, ne možemo koristiti izlazni tok za upisivanje podataka.
Da biste saznali više, posjetite Java BufferedOutputStream (službena Java dokumentacija).