English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans ce tutoriel, nous allons apprendre la classe Java ByteArrayOutputStream et ses méthodes à l'aide d'exemples.
La classe ByteArrayOutputStream du paquet java.io peut être utilisée pour écrire des données d'array de sortie (en octets).
Il hérite de la classe abstraite OutputStream.
Remarque:Maintient un tableau interne de bytes pour stocker les données dans ByteArrayOutputStream
Pour créer un flux de sortie de tableau de bytes, nous devons d'abord importer le paquet java.io.ByteArrayOutputStream. Après avoir importé le paquet, nous pouvons créer un flux de sortie.
//Crée un ByteArrayOutputStream de taille par défaut ByteArrayOutputStream out = new ByteArrayOutputStream();
Ici, nous créons un flux de sortie qui écrit des données dans une taille par défaut de32Il s'agit d'un tableau d'octets qui contient des bytes. Cependant, nous pouvons modifier la taille par défaut du tableau.
//Crée un ByteArrayOutputStream de taille spécifiée ByteArrayOutputStream out = new ByteArrayOutputStream(int size);
Ici, size spécifie la longueur de l'array
La classe ByteArrayOutputStream fournit des implémentations de différentes méthodes existantes dans la classe OutputStream.
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 un nombre d'octets égal à length à partir de la position start dans le flux de sortie de l'array
writeTo(ByteArrayOutputStream out1) -Écrit tout le contenu du flux de sortie actuel dans le flux de sortie spécifié
import java.io.ByteArrayOutputStream; class Main { public static void main(String[] args) { String data = "This is a line of text inside the string."; try { //Créer un flux de sortie ByteArrayOutputStream out = new ByteArrayOutputStream(); byte[] array = data.getBytes(); //Écrire les données dans le flux de sortie out.write(array); //Récupérer les données du flux de sortie sous forme de format de chaîne String streamData = out.toString(); System.out.println("Flux de sortie : "); + streamData); out.close(); } catch(Exception e) { e.getStackTrace(); } } }
Output result
Flux de sortie : This is a line of text inside the string.
Dans l'exemple ci-dessus, nous avons créé un flux de sortie de tableau de bytes nommé output.
ByteArrayOutputStream output = new ByteArrayOutputStream();
Pour écrire les données dans le flux de sortie, nous avons utilisé la méthode write().
Remarque:La méthode getBytes() utilisée dans le programme convertit une chaîne de caractères en tableau de bytes.
toByteArray() - Renvoie le tableau existant dans le flux de sortie
toString() - Renvoie toutes les données du flux de sortie sous forme de chaîne de caractères
Par exemple,
import java.io.ByteArrayOutputStream; class Main { public static void main(String[] args) { String data = "This is data."; try { //Créer un flux de sortie ByteArrayOutputStream out = new ByteArrayOutputStream(); //Écrire les données dans le flux de sortie out.write(data.getBytes()); //Renvoie un tableau de bytes byte[] byteData = out.toByteArray(); System.out.print("Utiliser les données de toByteArray() : "); for(int i=0; i<byteData.length; i++) { System.out.print((char)byteData[i]); } //Renvoie une chaîne de caractères String stringData = out.toString(); System.out.println("\nUtiliser les données de toString() : " + stringData); out.close(); } catch(Exception e) { e.getStackTrace(); } } }
Output result
Using toByteArray() data: This is data. Using toString() data: This is data.
In the above example, we created a byte array to store the data returned by the toByteArray() method.
Then use a for loop to access each byte in the array. Here, use type conversion to convert each byte to the corresponding character.
To close the output stream, we can use the close() method.
However, the close() method is invalid in the ByteArrayOutputStream class. Even if the close() method is called, we can still use the methods of this class.
Method | Content description |
---|---|
size() | Return the size of the array in the output stream |
flush() | Clear the output stream |