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ètode Descripció
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):

BufferedOutputStream a Java Exemple

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

...

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