Java ByteArrayOutputStream (avec des exemples)

Dans ce didacticiel, nous allons découvrir Java ByteArrayOutputStream et ses méthodes à l'aide d'exemples.

La ByteArrayOutputStreamclasse du java.iopackage peut être utilisée pour écrire un tableau de données de sortie (en octets).

Il étend la OutputStreamclasse abstraite.

Remarque : In ByteArrayOutputStreamgère un tableau interne d'octets pour stocker les données.

Créer un ByteArrayOutputStream

Afin de créer un flux de sortie de tableau d'octets, nous devons d'abord importer le java.io.ByteArrayOutputStreampackage. Une fois que nous importons le package, voici comment créer un flux de sortie.

 // Creates a ByteArrayOutputStream with default size ByteArrayOutputStream out = new ByteArrayOutputStream(); 

Ici, nous avons créé un flux de sortie qui écrira des données dans un tableau d'octets avec une taille par défaut de 32 octets. Cependant, nous pouvons modifier la taille par défaut du tableau.

 // Creating a ByteArrayOutputStream with specified size ByteArrayOutputStream out = new ByteArrayOutputStream(int size); 

Ici, la taille spécifie la longueur du tableau.

Méthodes de ByteArrayOutputStream

La ByteArrayOutputStreamclasse fournit l'implémentation des différentes méthodes présentes dans la OutputStreamclasse.

write (), méthode

  • write(int byte) - écrit l'octet spécifié dans le flux de sortie
  • write(byte() array) - écrit les octets du tableau spécifié dans le flux de sortie
  • write(byte() arr, int start, int length) - écrit le nombre d'octets égal à la longueur dans le flux de sortie d'un tableau à partir de la position de début
  • writeTo(ByteArrayOutputStream out1) - écrit toutes les données du flux de sortie actuel dans le flux de sortie spécifié

Exemple: ByteArrayOutputStream pour écrire des données

 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(); ) ) ) 

Production

 Flux de sortie: il s'agit d'une ligne de texte à l'intérieur de la chaîne. 

Dans l'exemple ci-dessus, nous avons créé un flux de sortie de tableau d'octets nommé output.

 ByteArrayOutputStream output = new ByteArrayOutputStream(); 

Pour écrire les données dans le flux de sortie, nous avons utilisé la write()méthode.

Remarque : La getBytes()méthode utilisée dans le programme convertit une chaîne en un tableau d'octets.

Accéder aux données depuis ByteArrayOutputStream

  • toByteArray() - renvoie le tableau présent à l'intérieur du flux de sortie
  • toString() - renvoie toutes les données du flux de sortie sous forme de chaîne

Par exemple,

 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éthodes Descriptions
size() renvoie la taille du tableau dans le flux de sortie
flush() efface le flux de sortie

To learn more, visit Java ByteArrayOutputStream (official Java documentation).

Articles intéressants...