English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base Java

Contrôle de flux Java

Java tableau

Java orienté objet (I)

Java orienté objet (II)

Java orienté objet (III)

Gestion des exceptions Java

Java Liste (List)

Java Queue (file d'attente)

Java Map collection

Java Set collection

Java entrée/sortie (I/O)

Java Reader/Writer

Autres sujets Java

Le programme Java convertit InputStream en tableau de bytes (bytearray)

Java complete list of examples

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

Pour comprendre cet exemple, vous devriez comprendre ce qui suitJava programmationThème :

Exemple1:Programme Java pour convertir InputStream en tableau de bytes

import java.io.InputStream;
import java.util.Arrays;
import java.io.ByteArrayInputStream;
public class Main {
  public static void main(String args[]) {
    try {
      //Créer un flux d'entrée
      byte[] input = {1, 2, 3, 4};
      InputStream stream = new ByteArrayInputStream(input);
      System.out.println("Flux d'entrée: " + stream);
      //Convertir le flux d'entrée en tableau de bytes
      byte[] array = stream.readAllBytes();
      System.out.println("Tableau de bytes : " + Arrays.toString(array));
      stream.close();
    }
    catch (Exception e) {
      e.getStackTrace();
    }
  }
}

Output result

Input Stream: java.io.ByteArrayInputStream@27082746
Tableau de bytes : [1, 2, 3, 4]

Dans l'exemple précédent, nous avons créé un flux d'entrée nommé stream (InputStream). Notez cette ligne,

byte[] array = stream.readAllBytes();

Ici, la méthode readAllBytes() retourne toutes les données du flux et les stocke dans un tableau de bytes.

Attention:Nous avons utilisé la méthode Arrays.toString() pour convertir tout le tableau en chaîne de caractères.

Exemple2:Utiliser le flux de sortie pour convertir InputStream en tableau de bytes

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 {
      //Créer un flux d'entrée
      byte[] input = {1, 2, 3, 4};
      InputStream stream = new ByteArrayInputStream(input);
      System.out.println("Flux d'entrée: " + stream);
      //Créer un flux de sortie
      ByteArrayOutputStream output = new ByteArrayOutputStream();
      //Créer un tableau de bytes pour stocker le flux d'entrée
      byte[] array = new byte[4];
      int i;
      //Lire toutes les données du flux d'entrée dans le tableau
      while ((i = stream.read(array, 0, array.length)) != -1) {
        //Écrire toutes les données du tableau dans la sortie
        output.write(array, 0, i);
      }
      byte[] data = output.toByteArray();
      //Convertir le flux d'entrée en tableau de bytes
      System.out.println("Byte Array: ") + Arrays.toString(data));
      stream.close();
    }
    catch (Exception e) {
      e.getStackTrace();
    }
  }
}

Output result

Input Stream: java.io.ByteArrayInputStream@27082746
Byte Array: [1, 2, 3, 4]

In the above example, we created an input stream input from array. Note the expression

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

In this case, all elements of the stream are stored in an array, starting from index 0. Then, we store all elements of the array into the output stream named output.

output.write(array, 0, i)

Finally, we call the toByteArray() method of the ByteArrayOutputStream class to convert the output stream to a byte array named data.

Java complete list of examples