logo

Java BufferedOutputStream klasė

Java sistemoje BufferedOutputStream klasė naudojama norint efektyviau įrašyti duomenis į išvesties srautą. Jis prideda buferį prie kito išvesties srauto, sumažindamas įvesties / išvesties operacijų skaičių, laikinai išsaugodamas duomenis atmintyje prieš įrašant juos į paskirties vietą (pvz., failą).

Jis priklauso java.io paketui ir išplečia FilterOutputStream klasę.

Ar gali android žaisti gamepigeon

Klasės deklaracija

viešoji klasė BufferedOutputStream išplečia FilterOutputStream



  • Pagerina įvesties / išvesties našumą naudojant buferį, kad būtų sumažinta tiesioginė prieiga prie disko.
  • Duomenys įrašomi į buferį ir tik tada, kai buferis yra pilnas (arba išpilamas), jie siunčiami į pagrindinį išvesties srautą.
  • Paprastai naudojamas su FileOutputStream.
  • Padeda rašyti baitų duomenis, pvz., vaizdų tekstinius failus ir dvejetainius duomenis.

Konstruktoriai

  • BufferedOutputStream (OutputStream out): Sukuria buferinį išvesties srautą, kurio numatytasis buferio dydis yra 8192 baitai.
  • BufferedOutputStream (OutputStream išvesties vidinis dydis): Sukuria buferinį išvesties srautą su nurodytu buferio dydžiu.

Svarbūs metodai

MetodasAprašymas
void write(int b)Į išvesties srautą įrašomas vienas baitas.
void write(byte[] b int off int len)Įrašo baitų masyvo dalį į išvesties srautą.
void flush()Išplauna buferį ir verčia įrašyti visus buferinius išvesties baitus.
void close()Uždaro srautą, pirmiausia jį nuplaudamas.

Java
import java.io.*; public class BufferedOutputStreamExample {  public static void main(String[] args) {  String data = 'BufferedOutputStream in Java Example';  try {  FileOutputStream fileOut = new FileOutputStream('output.txt');  BufferedOutputStream bufferOut = new BufferedOutputStream(fileOut);  byte[] bytes = data.getBytes();  bufferOut.write(bytes);  bufferOut.close();  System.out.println('Data written successfully.');  } catch (IOException e) {  e.printStackTrace();  }  } } 

Išvestis (output.txt turinys):

BufferedOutputStream Java pavyzdyje

2 pavyzdys: flush() metodo naudojimas

Java
import java.io.*; public class FlushExample {  public static void main(String[] args) {  try {  FileOutputStream fileOut = new FileOutputStream('flush.txt');  BufferedOutputStream bufferOut = new BufferedOutputStream(fileOut);  bufferOut.write('Hello'.getBytes());  bufferOut.flush(); // ensures data is written immediately  bufferOut.close();  System.out.println('Flush example completed.');  } catch (IOException e) {  e.printStackTrace();  }  } } 

Išvestis (flush.txt turinys):

Sveiki

Java
import java.io.*; public class LargeDataExample {  public static void main(String[] args) {  try {  FileOutputStream fileOut = new FileOutputStream('large.txt');  BufferedOutputStream bufferOut = new BufferedOutputStream(fileOut 8192); // custom buffer size  for (int i = 0; i < 1000; i++) {  bufferOut.write(('Line ' + i + 'n').getBytes());  }  bufferOut.close();  System.out.println('Large data written successfully.');  } catch (IOException e) {  e.printStackTrace();  }  } } 

Išvestis (didelių.txt pirmųjų eilučių turinys):

0 eilutė

1 eilutė

2 eilutė

vilkas ar lapė

...

Privalumai

  • Greitesnis rašymo našumas, palyginti su nebuferiniais srautais.
  • Sumažina fizinių rašymo operacijų skaičių.
  • Leidžia efektyviai įrašyti didelius duomenis.
Sukurti viktoriną