En este tutorial, aprenderemos sobre Java ByteArrayOutputStream y sus métodos con la ayuda de ejemplos.
La ByteArrayOutputStream
clase del java.io
paquete se puede utilizar para escribir una matriz de datos de salida (en bytes).
Extiende la OutputStream
clase abstracta.
Nota : In ByteArrayOutputStream
mantiene una matriz interna de bytes para almacenar los datos.
Crear un ByteArrayOutputStream
Para crear un flujo de salida de matriz de bytes, java.io.ByteArrayOutputStream
primero debemos importar el paquete. 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
La ByteArrayOutputStream
clase proporciona la implementación de los diferentes métodos presentes en la OutputStream
clase.
método de escritura
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 la longitud del flujo de salida desde una matriz comenzando desde el inicio de la posiciónwriteTo(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
Flujo de salida: esta es una línea de texto dentro de la cadena.
En el ejemplo anterior, hemos creado una secuencia de salida de matriz de bytes llamada salida.
ByteArrayOutputStream output = new ByteArrayOutputStream();
Para escribir los datos en el flujo de salida, usamos el write()
método.
Nota : El getBytes()
método utilizado en el programa convierte una cadena en una matriz de bytes.
Acceder a datos de 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
Output
Data using toByteArray(): This is data. Data using toString(): This is data.
In the above example, we have created an array of bytes to store the data returned by the
toByteArray()
method.
We then have used the for loop to access each byte from the array. Here, each byte is converted into the corresponding character using typecasting.
close() Method
To close the output stream, we can use the
close()
method.
However, the
close()
method has no effect in ByteArrayOutputStream
class. We can use the methods of this class even after the close()
method is called.
Other Methods of ByteArrayOutputStream
Métodos | Descripciones |
---|---|
size() | devuelve el tamaño de la matriz en el flujo de salida |
flush() | borra el flujo de salida |
To learn more, visit Java ByteArrayOutputStream (official Java documentation).