Java BufferedOutputStream (s primjerima)

U ovom uputstvu uz primjere ćemo naučiti o Javi BufferedOutputStream i njegovim metodama.

BufferedOutputStreamRazred java.iopaket se koristi s drugim izlaznim tokovima za zapisivanje podataka (u bajtovima) učinkovitije.

Proširuje OutputStreamapstraktnu klasu.

Rad BufferedOutputStream

BufferedOutputStreamOdrž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.BufferedOutputStreampaket. 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 BufferdOutputStreamimenovani međuspremnik s FileOutputStreamimenovanom 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

BufferedOutputStreamKlasa pruža implementacije za različite metode u OutputStreamklasi.

metoda write ()

  • write() - zapisuje jedan bajt u interni međuspremnik izlaznog toka
  • write(byte() array) - zapisuje bajtove iz navedenog polja u izlazni tok
  • write(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).

Zanimljivi članci...