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

Java Queue (filet)

Java Map Collections

Java Set Collections

Java Entrée/Sortie (I/O)/O)

Java Reader/Writer

Autres sujets Java

Classe Java ByteArrayOutputStream

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

Crée un 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

Méthodes de ByteArrayOutputStream

La classe ByteArrayOutputStream fournit des implémentations de différentes méthodes existantes dans la classe OutputStream.

Méthode write()

  • 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é

Exemple : ByteArrayOutputStream écrit 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 {
    //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.

Accéder aux données dans ByteArrayOutputStream

  • 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.

close() method

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.

Other methods of ByteArrayOutputStream

MethodContent description
size()Return the size of the array in the output stream
flush()Clear the output stream