logo

Classe Java BufferedOutputStream

A Java, la classe BufferedOutputStream s'utilitza per escriure dades en un flux de sortida de manera més eficient. Afegeix un buffer a un altre flux de sortida que redueix el nombre d'operacions d'E/S emmagatzemant temporalment dades a la memòria abans d'escriure-les a la destinació (com un fitxer).

Pertany al paquet java.io i amplia la classe FilterOutputStream.

Declaració de classe

La classe pública BufferedOutputStream amplia FilterOutputStream



  • Millora el rendiment d'E/S utilitzant un buffer per reduir l'accés directe al disc.
  • Les dades s'escriuen a la memòria intermèdia i només quan la memòria intermèdia està plena (o esborrada) s'envien al flux de sortida subjacent.
  • S'utilitza normalment amb FileOutputStream.
  • Ajuda a escriure dades de bytes, com ara fitxers de text d'imatges i dades binàries.

Constructors

  • BufferedOutputStream (sortida OutputStream): Crea un flux de sortida de memòria intermèdia amb una mida de memòria intermèdia predeterminada de 8192 bytes.
  • BufferedOutputStream(OutputStream out int size): Crea un flux de sortida de memòria intermèdia amb la mida de memòria intermèdia especificada.

Mètodes importants

MètodeDescripció
void write(int b)Escriu un únic byte al flux de sortida.
void write(byte[] b int off int len)Escriu una part de la matriu de bytes al flux de sortida.
void flush()Esborra la memòria intermèdia i obliga a escriure els bytes de sortida de la memòria intermèdia.
void close()Tanca el corrent rentant-lo primer.

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

Sortida (contingut de output.txt):

fonts per a gimp

BufferedOutputStream a Java Exemple

comanda de retorn de java

Exemple 2: Ús del mètode flush().

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

Sortida (contingut de flush.txt):

hola

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

Sortida (contingut de les primeres línies de large.txt):

Línia 0

Línia 1

Línia 2

cadena de matriu c

...

Avantatges

  • Rendiment d'escriptura més ràpid en comparació amb els fluxos sense memòria intermèdia.
  • Redueix el nombre d'operacions d'escriptura físiques.
  • Permet escriure dades grans de manera eficient.
Crea un qüestionari