Clase Java BufferedOutputStream

En Java, la clase BufferedOutputStream se utiliza para escribir datos en un flujo de salida de manera más eficiente. Agrega un búfer a otro flujo de salida, lo que reduce la cantidad de operaciones de E/S al almacenar temporalmente datos en la memoria antes de escribirlos en el destino (como un archivo).

Pertenece al paquete java.io y extiende la clase FilterOutputStream.

Declaración de clase

la clase pública BufferedOutputStream extiende FilterOutputStream

  • Mejora el rendimiento de E/S mediante el uso de un búfer para reducir el acceso directo al disco.
  • Los datos se escriben en el búfer y solo cuando el búfer está lleno (o vaciado) se envían al flujo de salida subyacente.
  • Normalmente se utiliza con FileOutputStream.
  • Ayuda a escribir datos de bytes, como archivos de texto de imágenes y datos binarios.

Constructores

  • BufferedOutputStream(OutputStream fuera): Crea un flujo de salida almacenado en búfer con un tamaño de búfer predeterminado de 8192 bytes.
  • BufferedOutputStream (OutputStream fuera de tamaño int): Crea un flujo de salida almacenado en búfer con el tamaño de búfer especificado.

Métodos importantes

Método Descripción
void write(int b) Escribe un solo byte en el flujo de salida.
void write(byte[] b int off int len) Escribe una parte de la matriz de bytes en el flujo de salida.
void flush() Vacía el búfer y fuerza la escritura de los bytes de salida almacenados en el búfer.
void close() Cierra el chorro enjuagándolo primero.

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

Salida (contenido de salida.txt):

Ejemplo de BufferedOutputStream en Java

Ejemplo 2: uso del método 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  ();      }      }   }   

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

Salida (contenido de las primeras líneas de big.txt):

Línea 0

Línea 1

Línea 2

...

Ventajas

  • Rendimiento de escritura más rápido en comparación con transmisiones sin búfer.
  • Reduce el número de operaciones de escritura física.
  • Permite escribir grandes datos de manera eficiente.
Crear cuestionario