Clase Java ByteArrayOutputStream
Clase Java ByteArrayOutputStream
En este tutorial, aprenderemos sobre Java ByteArrayOutputStream y sus métodos con la ayuda de ejemplos.
El ByteArrayOutputStream
clase del java.io
El paquete se puede usar para escribir una matriz de datos de salida (en bytes).
Extiende el OutputStream
clase abstracta.
Nota :En ByteArrayOutputStream
mantiene una matriz interna de bytes para almacenar los datos.
Crear un ByteArrayOutputStream
Para crear un flujo de salida de matriz de bytes, debemos importar el java.io.ByteArrayOutputStream
paquete primero. Una vez que importamos el paquete, así es como podemos crear un flujo de salida.
// Creates a ByteArrayOutputStream with default size
ByteArrayOutputStream out = new ByteArrayOutputStream();
Aquí, hemos creado un flujo de salida que escribirá datos en una matriz de bytes con un tamaño predeterminado de 32 bytes. Sin embargo, podemos cambiar el tamaño predeterminado de la matriz.
// Creating a ByteArrayOutputStream with specified size
ByteArrayOutputStream out = new ByteArrayOutputStream(int size);
Aquí, el tamaño especifica la longitud de la matriz.
Métodos de ByteArrayOutputStream
El ByteArrayOutputStream
class proporciona la implementación de los diferentes métodos presentes en el OutputStream
clase.
método write()
write(int byte)
- escribe el byte especificado en el 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 iniciowriteTo(ByteArrayOutputStream out1)
- escribe todos los datos del flujo de salida actual en el flujo de salida especificado
Ejemplo:ByteArrayOutputStream para escribir datos
import java.io.ByteArrayOutputStream;
class Main {
public static void main(String[] args) {
String data = "This is a line of text inside the string.";
try {
// Creates an output stream
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] array = data.getBytes();
// Writes data to the output stream
out.write(array);
// Retrieves data from the output stream in string format
String streamData = out.toString();
System.out.println("Output stream: " + streamData);
out.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
Salida
Output stream: This is a line of text inside the string.
En el ejemplo anterior, hemos creado un flujo de salida de matriz de bytes llamado salida .
ByteArrayOutputStream output = new ByteArrayOutputStream();
Para escribir los datos en el flujo de salida, hemos usado el write()
método.
Nota :El getBytes()
El método utilizado en el programa convierte una cadena en una matriz de bytes.
Acceso a datos desde ByteArrayOutputStream
toByteArray()
- devuelve la matriz presente dentro del flujo de salidatoString()
- devuelve todos los datos del flujo de salida en forma de cadena
Por ejemplo,
import java.io.ByteArrayOutputStream;
class Main {
public static void main(String[] args) {
String data = "This is data.";
try {
// Creates an output stream
ByteArrayOutputStream out = new ByteArrayOutputStream();
// Writes data to the output stream
out.write(data.getBytes());
// Returns an array of bytes
byte[] byteData = out.toByteArray();
System.out.print("Data using toByteArray(): ");
for(int i=0; i<byteData.length; i++) {
System.out.print((char)byteData[i]);
}
// Returns a string
String stringData = out.toString();
System.out.println("\nData using toString(): " + stringData);
out.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
Salida
Data using toByteArray(): This is data. Data using toString(): This is data.
En el ejemplo anterior, hemos creado una matriz de bytes para almacenar los datos devueltos por toByteArray()
método.
Luego hemos usado el bucle for para acceder a cada byte de la matriz. Aquí, cada byte se convierte en el carácter correspondiente mediante el encasillado.
Método cerrar()
Para cerrar el flujo de salida, podemos usar close()
método.
Sin embargo, el close()
el método no tiene efecto en ByteArrayOutputStream
clase. Podemos usar los métodos de esta clase incluso después del close()
se llama al método.
Otros métodos de ByteArrayOutputStream
Métodos | Descripciones |
---|---|
size() | devuelve el tamaño de la matriz en el flujo de salida |
flush() | borra el flujo de salida |
Para obtener más información, visite Java ByteArrayOutputStream (documentación oficial de Java).
Java