Programme Java pour convertir le InputStream en Byte Array

Dans cet exemple, nous allons apprendre à convertir un flux d'entrée en tableau d'octets en Java.

Pour comprendre cet exemple, vous devez avoir la connaissance des rubriques de programmation Java suivantes:

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

Exemple 1: programme Java pour 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(); ) ) )

Production

 Flux d'entrée: java.io.ByteArrayInputStream@27082746 Byte Array: (1, 2, 3, 4)

Dans l'exemple ci-dessus, nous avons créé un flux d'entrée nommé stream. Notez la ligne,

 byte() array = stream.readAllBytes();

Ici, la readAllBytes()méthode renvoie toutes les données du flux et les stocke dans le tableau d'octets.

Remarque : Nous avons utilisé la Arrays.toString()méthode pour convertir tout le tableau entier en une chaîne.

Exemple 2: Convertir InputStream en Byte Array en utilisant 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(); ) ) )

Production

 Flux d'entrée: java.io.ByteArrayInputStream@27082746 Byte Array: (1, 2, 3, 4)

Dans l'exemple ci-dessus, nous avons créé un flux d'entrée à partir de l'entrée du tableau. Remarquez l'expression,

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

Ici, tous les éléments du flux sont stockés dans un tableau, à partir de l'index 0 . Nous stockons ensuite tous les éléments du tableau dans le flux de sortie nommé output.

 output.write(array, 0, i)

Enfin, nous appelons la toByteArray()méthode de la ByteArrayOutputStreamclasse, pour convertir le flux de sortie en un tableau d'octets nommé data.

Articles intéressants...