Programma Java per convertire InputStream in Byte Array

In questo esempio, impareremo a convertire un flusso di input nell'array di byte in Java.

Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione Java:

  • Classe InputStream Java
  • Classe Java ByteArrayInputStream
  • Classe Java ByteArrayOutputStream

Esempio 1: programma Java per convertire InputStream in 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(); ) ) )

Produzione

 Flusso di input: java.io.ByteArrayInputStream@27082746 Byte Array: (1, 2, 3, 4)

Nell'esempio precedente, abbiamo creato un flusso di input denominato stream. Nota la linea,

 byte() array = stream.readAllBytes();

Qui, il readAllBytes()metodo restituisce tutti i dati dal flusso e li memorizza nell'array di byte.

Nota : abbiamo utilizzato il Arrays.toString()metodo per convertire l'intero array in una stringa.

Esempio 2: convertire InputStream in Byte Array utilizzando 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(); ) ) )

Produzione

 Flusso di input: java.io.ByteArrayInputStream@27082746 Byte Array: (1, 2, 3, 4)

Nell'esempio precedente, abbiamo creato un flusso di input dall'input dell'array. Notare l'espressione,

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

Qui, tutti gli elementi del flusso vengono memorizzati in array, a partire dall'indice 0 . Memorizziamo quindi tutti gli elementi dell'array nel flusso di output denominato output.

 output.write(array, 0, i)

Infine, chiamiamo il toByteArray()metodo della ByteArrayOutputStreamclasse, per convertire il flusso di output in una matrice di byte denominata data.

Articoli interessanti...