„Java BufferedOutputStream“ (su pavyzdžiais)

Šioje pamokoje pavyzdžių pagalba sužinosime apie „Java BufferedOutputStream“ ir jos metodus.

BufferedOutputStreamKlasės java.iopakuotėje yra naudojamas kartu su kitais išeigos srautų rašyti duomenis (baitais) efektyviau.

Tai pratęsia OutputStreamabstrakčią klasę.

„BufferedOutputStream“ darbas

BufferedOutputStreamPalaiko vidaus buferį 8192 baitų .

Rašymo operacijos metu baitai įrašomi į vidinį buferį, o ne diską. Užpildžius buferį arba uždarius srautą, visas buferis įrašomas į diską.

Taigi sumažėja ryšio į diską skaičius. Štai kodėl baitų rašymas yra greitesnis BufferedOutputStream.

Sukurkite „BufferedOutputStream“

Norėdami sukurti „a“ BufferedOutputStream, pirmiausia turime importuoti java.io.BufferedOutputStreampaketą. Kai importuosime paketą, galime sukurti išvesties srautą.

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

Ankstesniame pavyzdyje mes sukūrėme BufferdOutputStreampavadintą buferį su FileOutputStreampavadintu failu.

Čia vidinio buferio numatytasis dydis yra 8192 baitai. Tačiau mes galime nurodyti ir vidinio buferio dydį.

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

Buferis padės greičiau įrašyti baitus į failus.

„BufferedOutputStream“ metodai

BufferedOutputStreamKlasė suteikia diegimo skirtingų metodų OutputStreamklasės.

rašyti () metodas

  • write() - įrašo vieną baitą į išvesties srauto vidinį buferį
  • write(byte() array) - rašo baitus iš nurodyto masyvo į išvesties srautą
  • write(byte() arr, int start, int length) - rašo baitų skaičių, lygų ilgiui išvesties srautui iš masyvo pradedant nuo padėties pradžios

Pavyzdys: „BufferedOutputStream“, norint įrašyti duomenis į failą

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

Ankstesniame pavyzdyje mes sukūrėme buferinį išvesties srautą, pavadintą produkcija kartu su FileOutputStream. Išvesties srautas susietas su failu output.txt .

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

Norėdami įrašyti duomenis į failą, mes naudojome write()metodą.

Čia, kai vykdome programą, failas output.txt užpildomas tokiu turiniu.

 This is a line of text inside the file. 

Pastaba : Programoje getBytes()naudojamas metodas paverčia eilutę į baitų masyvą.

praplaukite () metodas

Norėdami išvalyti vidinį buferį, galime naudoti flush()metodą. Šis metodas priverčia išvesties srautą visus buferio duomenis įrašyti į paskirties failą. Pavyzdžiui,

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

Rezultatas

 Duomenys ištrinami į failą. 

Paleidus programą, failas „ flush.txt “ užpildomas tekstu, kurį vaizduoja eilutės duomenys.

uždaryti () metodas

Norėdami uždaryti buferinį išvesties srautą, galime naudoti close()metodą. Iškvietus metodą, negalime naudoti išvesties srauto duomenims rašyti.

Norėdami sužinoti daugiau, apsilankykite „Java BufferedOutputStream“ (oficiali „Java“ dokumentacija).

Įdomios straipsniai...