Šioje pamokoje pavyzdžių pagalba sužinosime apie „Java BufferedOutputStream“ ir jos metodus.
BufferedOutputStream
Klasės java.io
pakuotėje yra naudojamas kartu su kitais išeigos srautų rašyti duomenis (baitais) efektyviau.
Tai pratęsia OutputStream
abstrakčią klasę.
„BufferedOutputStream“ darbas
BufferedOutputStream
Palaiko 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.BufferedOutputStream
paketą. 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 BufferdOutputStream
pavadintą buferį su FileOutputStream
pavadintu 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
BufferedOutputStream
Klasė suteikia diegimo skirtingų metodų OutputStream
klasė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).