Programa Java para convertir InputStream en Byte Array

En este ejemplo, aprenderemos a convertir un flujo de entrada en una matriz de bytes en Java.

Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de Java:

  • Clase InputStream de Java
  • Clase ByteArrayInputStream de Java
  • Clase ByteArrayOutputStream de Java

Ejemplo 1: Programa Java para convertir InputStream en Byte Array

 import java.io.InputStream; import java.util.Arrays; import java.io.ByteArrayInputStream; public class Main ( public static void main(String args()) ( try ( // create an input stream byte() input = (1, 2, 3, 4); InputStream stream = new ByteArrayInputStream(input); System.out.println("Input Stream: " + stream); // convert the input stream to byte array byte() array = stream.readAllBytes(); System.out.println("Byte Array: " + Arrays.toString(array)); stream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )

Salida

 Flujo de entrada: java.io.ByteArrayInputStream@27082746 Matriz de bytes: (1, 2, 3, 4)

En el ejemplo anterior, hemos creado un flujo de entrada llamado flujo. Tenga en cuenta la línea,

 byte() array = stream.readAllBytes();

Aquí, el readAllBytes()método devuelve todos los datos del flujo y los almacena en la matriz de bytes.

Nota : Hemos utilizado el Arrays.toString()método para convertir toda la matriz en una cadena.

Ejemplo 2: Convertir InputStream en Byte Array usando Output Stream

 import java.io.InputStream; import java.util.Arrays; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; public class Main ( public static void main(String args()) ( try ( // create an input stream byte() input = (1, 2, 3, 4); InputStream stream = new ByteArrayInputStream(input); System.out.println("Input Stream: " + stream); // create an output stream ByteArrayOutputStream output = new ByteArrayOutputStream(); // create a byte array to store input stream byte() array = new byte(4); int i; // read all data from input stream to array while ((i = stream.read(array, 0, array.length)) != -1) ( // write all data from array to output output.write(array, 0, i); ) byte() data = output.toByteArray(); // convert the input stream to byte array System.out.println("Byte Array: " + Arrays.toString(data)); stream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )

Salida

 Flujo de entrada: java.io.ByteArrayInputStream@27082746 Matriz de bytes: (1, 2, 3, 4)

En el ejemplo anterior, hemos creado un flujo de entrada a partir de la entrada de la matriz. Note la expresión,

 stream.read(array, 0, array.length)

Aquí, todos los elementos de la secuencia se almacenan en una matriz, comenzando desde el índice 0 . Luego almacenamos todos los elementos de la matriz en el flujo de salida denominado salida.

 output.write(array, 0, i)

Finalmente, llamamos al toByteArray()método de la ByteArrayOutputStreamclase para convertir el flujo de salida en una matriz de bytes denominada datos.

Articulos interesantes...