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 ObjectInputStream : Guide complet

Maîtriser Java ObjectInputStream : Guide complet

La classe ObjectInputStream du package java.io permet de désérialiser des objets précédemment écrits par ObjectOutputStream. Elle étend la classe abstraite InputStream.

Avant de plonger dans ObjectInputStream, assurez-vous de connaître la classe ObjectOutputStream, qui gère le processus de sérialisation.


Comment fonctionne ObjectInputStream

La sérialisation transforme des objets Java en flux d'octets stockables ou transmissibles. La désérialisation — le processus inverse — est gérée par ObjectInputStream, qui lit le flux d'octets et reconstruit les objets originaux.


Création d'un ObjectInputStream

Pour créer un ObjectInputStream, importez la classe et liez-la à une source, généralement un FileInputStream :

// Lien vers un fichier
FileInputStream fluxFichier = new FileInputStream("exemple.dat");
// Encapsulation dans ObjectInputStream
ObjectInputStream fluxObjets = new ObjectInputStream(fluxFichier);

Une fois instancié, fluxObjets peut lire tout objet sérialisé depuis le fichier.


Méthodes principales d'ObjectInputStream


Exemple 1 : Désérialisation basique

Exemple minimal écrivant un entier et une chaîne dans un fichier, puis les relisant.

import java.io.*;

public class Main {
    public static void main(String[] args) {
        int donnee1 = 5;
        String donnee2 = "Ceci est programiz";
        try {
            // Écriture des données
            FileOutputStream fos = new FileOutputStream("fichier.txt");
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeInt(donnee1);
            oos.writeObject(donnee2);

            // Lecture des données
            FileInputStream fis = new FileInputStream("fichier.txt");
            ObjectInputStream ois = new ObjectInputStream(fis);
            System.out.println("Donnée entière : " + ois.readInt());
            System.out.println("Donnée chaîne : " + ois.readObject());
            oos.close();
            ois.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Sortie

Donnée entière : 5
Donnée chaîne : Ceci est programiz

Exemple 2 : Désérialisation d'un objet personnalisé

Sérialisez et désérialisez un objet Chien simple. La classe doit implémenter Serializable.

import java.io.*;

class Chien implements Serializable {
    String nom;
    String race;
    Chien(String nom, String race) {
        this.nom = nom;
        this.race = race;
    }
}

public class Main {
    public static void main(String[] args) {
        Chien chien = new Chien("Tyson", "Labrador");
        try {
            // Sérialisation
            FileOutputStream fos = new FileOutputStream("fichier.txt");
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(chien);

            // Désérialisation
            FileInputStream fis = new FileInputStream("fichier.txt");
            ObjectInputStream ois = new ObjectInputStream(fis);
            Chien nouveauChien = (Chien) ois.readObject();
            System.out.println("Nom du chien : " + nouveauChien.nom);
            System.out.println("Race du chien : " + nouveauChien.race);
            oos.close();
            ois.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Sortie

Nom du chien : Tyson
Race du chien : Labrador

Points clés :


Méthodes supplémentaires d'ObjectInputStream

MéthodeDescription
available()Renvoie le nombre d'octets lisibles sans blocage
mark()Marque la position courante dans le flux
reset()Réinitialise le flux à la marque la plus récente
skipBytes(int n)Ignore n octets
close()Ferme le flux et libère les ressources

Pour plus de détails, visitez la documentation officielle Java.

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