Clase Java BufferedOutputStream
Clase Java BufferedOutputStream
En este tutorial, aprenderemos sobre Java BufferedOutputStream y sus métodos con la ayuda de ejemplos.
El BufferedOutputStream
clase del java.io
El paquete se usa con otros flujos de salida para escribir los datos (en bytes) de manera más eficiente.
Extiende el OutputStream
clase abstracta.
Funcionamiento de BufferedOutputStream
El BufferedOutputStream
mantiene un buffer interno 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 transmisión, todo el búfer se escribe en el disco.
Por lo tanto, se reduce el número de comunicaciones con el disco. Es por eso que escribir bytes es más rápido usando BufferedOutputStream
.
Crear un BufferedOutputStream
Para crear un BufferedOutputStream
, debemos importar el java.io.BufferedOutputStream
paquete primero. 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 BufferdOutputStream
llamado búfer con el FileOutputStream
llamado archivo .
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 los archivos más rápidamente.
Métodos de BufferedOutputStream
El BufferedOutputStream
La clase proporciona implementaciones para diferentes métodos en el OutputStream
clase.
método escribir()
write()
- escribe un solo byte en el búfer interno del flujo de salidawrite(byte[] array)
- escribe los bytes de la matriz especificada en el flujo de salidawrite(byte[] arr, int start, int length)
- escribe el número de bytes igual a longitud al flujo de salida desde una matriz a partir de la posición inicio
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 output 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, hemos utilizado el write()
método.
Aquí cuando ejecutamos el programa, el output.txt El archivo está lleno con el siguiente contenido.
This is a line of text inside the file.
Nota :El getBytes()
El método utilizado en el programa convierte una cadena en una matriz de bytes.
Método de vaciar()
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
Data is flushed to the file.
Cuando ejecutamos el programa, el archivo flush.txt se rellena con el texto representado por la cadena datos .
Método cerrar()
Para cerrar el flujo de salida almacenado en búfer, podemos usar 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).
Java