Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Maîtriser Java ByteArrayOutputStream : Méthodes, utilisation et exemples pratiques

Maîtriser Java ByteArrayOutputStream : Méthodes, utilisation et exemples pratiques

La classe ByteArrayOutputStream du package java.io permet d'écrire des données dans un tableau d'octets interne qui s'agrandit automatiquement selon les besoins. Elle étend la classe abstraite OutputStream, en faisant un outil polyvalent pour la manipulation d'octets en mémoire.

Note : La classe maintient un tampon interne qui s'étend à la demande, vous n'avez généralement pas besoin de pré-définir sa capacité sauf si vous connaissez la taille exacte requise.


Création d'un ByteArrayOutputStream

Importez java.io.ByteArrayOutputStream et instanciez-le. Par défaut, le tampon commence à 32 octets :

// Taille par défaut
ByteArrayOutputStream out = new ByteArrayOutputStream();

Vous pouvez aussi spécifier une capacité initiale si vous attendez une charge importante :

// Taille personnalisée
ByteArrayOutputStream out = new ByteArrayOutputStream(int taille);

Le paramètre taille définit la longueur initiale du tampon en octets.


Méthodes principales de ByteArrayOutputStream

Méthode write()

Exemple : Écriture de données dans ByteArrayOutputStream

import java.io.ByteArrayOutputStream;

class Main {
    public static void main(String[] args) {
        String donnees = "Ceci est une ligne de texte dans la chaîne.";
        try {
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            byte[] tableau = donnees.getBytes();
            out.write(tableau);
            String donneesFlux = out.toString();
            System.out.println("Flux de sortie : " + donneesFlux);
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Sortie

Flux de sortie : Ceci est une ligne de texte dans la chaîne.

Ici, write() transfère le tableau d'octets dans le flux, et toString() récupère les données accumulées en texte.


Accès aux données depuis ByteArrayOutputStream

Démonstration des deux méthodes :

import java.io.ByteArrayOutputStream;

class Main {
    public static void main(String[] args) {
        String donnees = "Ceci est des données.";
        try {
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            out.write(donnees.getBytes());
            byte[] donneesOctets = out.toByteArray();
            System.out.print("Données via toByteArray() : ");
            for (int i = 0; i < donneesOctets.length; i++) {
                System.out.print((char) donneesOctets[i]);
            }
            String donneesChaine = out.toString();
            System.out.println("\nDonnées via toString() : " + donneesChaine);
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Sortie

Données via toByteArray() : Ceci est des données.
Données via toString() : Ceci est des données.

Méthode close()

Appeler close() sur un ByteArrayOutputStream n'a aucun effet néfaste ; le flux reste utilisable. Ce comportement correspond à sa conception pour les tampons en mémoire où aucune ressource externe n'a besoin d'être libérée.


Méthodes supplémentaires

MéthodeDescription
size()Renvoie le nombre d'octets écrits jusqu'à présent
flush()Réinitialise le tampon interne, vidant effectivement le flux

Pour une utilisation avancée, consultez la documentation officielle Java SE.

Java

  1. Comprendre le mot-clé final en Java : variables, méthodes et classes
  2. L'opérateur instanceof en Java : guide complet
  3. Comprendre les classes imbriquées statiques en Java : utilisation, différences et exemples
  4. Maîtriser les classes internes anonymes en Java : définition, syntaxe et exemples pratiques
  5. Le pattern Singleton en Java expliqué : implémentation et utilisation sûre
  6. Maîtriser la réflexion Java : inspection des classes, méthodes et champs à l'exécution
  7. Maîtriser Java ObjectOutputStream : Sérialisation, méthodes et exemples pratiques
  8. Maîtriser les génériques Java : Construire du code réutilisable et type-safe
  9. Maîtriser les opérations sur les fichiers Java avec java.io – Création, lecture, écriture et suppression