Classe Java ByteArrayOutputStream
Classe Java ByteArrayOutputStream
Dans ce didacticiel, nous allons découvrir Java ByteArrayOutputStream et ses méthodes à l'aide d'exemples.
Le ByteArrayOutputStream
classe du java.io
package peut être utilisé pour écrire un tableau de données de sortie (en octets).
Il étend le OutputStream
classe abstraite.
Remarque :En ByteArrayOutputStream
maintient 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 importer le java.io.ByteArrayOutputStream
paquet d'abord. Une fois le package importé, 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 changer 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
Le ByteArrayOutputStream
La classe fournit l'implémentation des différentes méthodes présentes dans le OutputStream
classe.
méthode write()
write(int byte)
- écrit l'octet spécifié dans le flux de sortiewrite(byte[] array)
- écrit les octets du tableau spécifié dans le flux de sortiewrite(byte[] arr, int start, int length)
- écrit le nombre d'octets égal à longueur au flux de sortie d'un tableau à partir de la position débutwriteTo(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();
}
}
}
Sortie
Output stream: This is a line of text inside the string.
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é le write()
méthode.
Remarque :Le getBytes()
méthode utilisée dans le programme convertit une chaîne en un tableau d'octets.
Accéder aux données de ByteArrayOutputStream
toByteArray()
- renvoie le tableau présent dans le flux de sortietoString()
- 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<byteData.length; i++) {
System.out.print((char)byteData[i]);
}
// Returns a string
String stringData = out.toString();
System.out.println("\nData using toString(): " + stringData);
out.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
Sortie
Data using toByteArray(): This is data. Data using toString(): This is data.
Dans l'exemple ci-dessus, nous avons créé un tableau d'octets pour stocker les données renvoyées par le toByteArray()
méthode.
Nous avons ensuite utilisé la boucle for pour accéder à chaque octet du tableau. Ici, chaque octet est converti dans le caractère correspondant en utilisant le transtypage.
Méthode close()
Pour fermer le flux de sortie, nous pouvons utiliser le close()
méthode.
Cependant, le close()
la méthode n'a aucun effet dans ByteArrayOutputStream
classer. On peut utiliser les méthodes de cette classe même après le close()
méthode est appelée.
Autres méthodes de ByteArrayOutputStream
Méthodes | Descriptions |
---|---|
size() | renvoie la taille du tableau dans le flux de sortie |
flush() | efface le flux de sortie |
Pour en savoir plus, visitez Java ByteArrayOutputStream (documentation officielle de Java).
Java