Java ByteArrayOutputStream (con ejemplos)

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

La ByteArrayOutputStreamclase del java.iopaquete se puede utilizar para escribir una matriz de datos de salida (en bytes).

Extiende la OutputStreamclase abstracta.

Nota : In ByteArrayOutputStreammantiene una matriz interna de bytes para almacenar los datos.

Crear un ByteArrayOutputStream

Para crear un flujo de salida de matriz de bytes, java.io.ByteArrayOutputStreamprimero 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 ByteArrayOutputStreamclase proporciona la implementación de los diferentes métodos presentes en la OutputStreamclase.

método de escritura

  • write(int byte) - escribe el byte especificado en el 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
  • writeTo(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 salida
  • toString() - 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).

Articulos interesantes...