Java BufferedOutputStream (con ejemplos)

En este tutorial, aprenderemos sobre Java BufferedOutputStream y sus métodos con la ayuda de ejemplos.

La BufferedOutputStreamclase del java.iopaquete se usa con otros flujos de salida para escribir los datos (en bytes) de manera más eficiente.

Extiende la OutputStreamclase abstracta.

Trabajo de BufferedOutputStream

El BufferedOutputStreammantiene una interna tampón de 8192 bytes .

Durante la operación de escritura, los bytes se escriben en el búfer interno en lugar del disco. Una vez que se llena el búfer o se cierra la secuencia, todo el búfer se escribe en el disco.

Por lo tanto, se reduce el número de comunicaciones al disco. Es por eso que escribir bytes es más rápido usando BufferedOutputStream.

Crear un BufferedOutputStream

Para crear un BufferedOutputStream, java.io.BufferedOutputStreamprimero debemos importar el paquete. Una vez que importamos el paquete, aquí es cómo podemos crear el flujo de salida.

 // Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String path); // Creates a BufferedOutputStream BufferedOutputStream buffer = new BufferOutputStream(file); 

En el ejemplo anterior, hemos creado un BufferdOutputStreambúfer con FileOutputStreamnombre con el archivo con nombre.

Aquí, el búfer interno tiene el tamaño predeterminado de 8192 bytes. Sin embargo, también podemos especificar el tamaño del búfer interno.

 // Creates a BufferedOutputStream with specified size internal buffer BufferedOutputStream buffer = new BufferOutputStream(file, int size); 

El búfer ayudará a escribir bytes en archivos más rápidamente.

Métodos de BufferedOutputStream

La BufferedOutputStreamclase proporciona implementaciones para diferentes métodos en la OutputStreamclase.

método de escritura

  • write() - escribe un solo byte en el búfer interno del flujo de salida
  • write(byte() array) - escribe los bytes de la matriz especificada en el flujo de salida
  • write(byte() arr, int start, int length) - escribe el número de bytes igual a la longitud del flujo de salida desde una matriz comenzando desde el inicio de la posición

Ejemplo: BufferedOutputStream para escribir datos en un archivo

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

En el ejemplo anterior, hemos creado un flujo de salida almacenado en búfer llamado salida junto con FileOutputStream. El flujo de salida está vinculado con el archivo output.txt .

 FileOutputStream file = new FileOutputStream("output.txt"); BufferedOutputStream output = new BufferedOutputStream(file); 

Para escribir datos en el archivo, usamos el write()método.

Aquí, cuando ejecutamos el programa, el archivo output.txt se llena con el siguiente contenido.

 This is a line of text inside the file. 

Nota : El getBytes()método utilizado en el programa convierte una cadena en una matriz de bytes.

Método flush ()

Para borrar el búfer interno, podemos usar el flush()método. Este método obliga al flujo de salida a escribir todos los datos presentes en el búfer en el archivo de destino. Por ejemplo,

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

Salida

 Los datos se vacían en el archivo. 

Cuando ejecutamos el programa, el archivo flush.txt se llena con el texto representado por la cadena de datos.

Método close ()

Para cerrar el flujo de salida almacenado en búfer, podemos usar el close()método. Una vez que se llama al método, no podemos usar el flujo de salida para escribir los datos.

Para obtener más información, visite Java BufferedOutputStream (documentación oficial de Java).

Articulos interesantes...