Dans ce didacticiel, nous allons découvrir Java ObjectOutputStream et ses méthodes à l'aide d'exemples.
La ObjectInputStreamclasse du java.iopackage peut être utilisée pour lire des objets précédemment écrits par ObjectOutputStream.
Il étend la InputStreamclasse abstraite.

Avant d'en savoir plus sur la ObjectInputStreamclasse, assurez-vous de connaître la classe ObjectOutputStream.
Fonctionnement d'ObjectInputStream
Le ObjectInputStreamest principalement utilisé pour lire les données écrites par le ObjectOutputStream.
Fondamentalement, le ObjectOutputStreamconvertit les objets Java en flux correspondants. C'est ce qu'on appelle la sérialisation. Ces flux convertis peuvent être stockés dans des fichiers ou transférés via des réseaux.
Maintenant, si nous avons besoin de lire ces objets, nous utiliserons le ObjectInputStreamqui reconvertira les flux en objets correspondants. C'est ce qu'on appelle la désérialisation.
Créer un ObjectInputStream
Afin de créer un flux d'entrée d'objet, nous devons d'abord importer le java.io.ObjectInputStreampackage. Une fois que nous avons importé le package, voici comment nous pouvons créer un flux d'entrée.
// Creates a file input stream linked with the specified file FileInputStream fileStream = new FileInputStream(String file); // Creates an object input stream using the file input stream ObjectInputStream objStream = new ObjectInputStream(fileStream);
Dans l'exemple ci-dessus, nous avons créé un flux d'entrée d'objet nommé objStream qui est lié au flux d'entrée de fichier nommé fileStream.
Maintenant, le objStreampeut être utilisé pour lire des objets à partir du fichier.
Méthodes d'ObjectInputStream
La ObjectInputStreamclasse fournit des implémentations des différentes méthodes présentes dans la InputStreamclasse.
read (), méthode
read()- lit un octet de données dans le flux d'entréereadBoolean()- lit les données sous forme booléennereadChar()- lit les données sous forme de caractèresreadInt()- lit les données sous forme entièrereadObject()- lit l'objet à partir du flux d'entrée
Exemple 1: Java ObjectInputStream
Voyons comment nous pouvons utiliser la ObjectInputStreamclasse pour lire les objets écrits par la ObjectOutputStreamclasse.
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; class Main ( public static void main(String() args) ( int data1 = 5; String data2 = "This is programiz"; try ( FileOutputStream file = new FileOutputStream("file.txt"); ObjectOutputStream output = new ObjectOutputStream(file); // Writing to the file using ObjectOutputStream output.writeInt(data1); output.writeObject(data2); FileInputStream fileStream = new FileInputStream("file.txt"); // Creating an object input stream ObjectInputStream objStream = new ObjectInputStream(fileStream); //Using the readInt() method System.out.println("Integer data :" + objStream.readInt()); // Using the readObject() method System.out.println("String data: " + objStream.readObject()); output.close(); objStream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Production
Données entières: 5 Données de chaîne: Ceci est programiz
Dans l'exemple ci-dessus, nous avons utilisé la méthode readInt()et readObject()pour lire des données entières et des données d'objet à partir du fichier.
Ici, nous avons utilisé le ObjectOutputStreampour écrire des données dans le fichier. Nous lisons ensuite les données du fichier en utilisant le ObjectInputStream.
Exemple 2: Java ObjectInputStream
Voyons un autre exemple pratique,
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; class Dog implements Serializable ( String name; String breed; public Dog(String name, String breed) ( this.name = name; this.breed = breed; ) ) class Main ( public static void main(String() args) ( // Creates an object of Dog class Dog dog = new Dog("Tyson", "Labrador"); try ( FileOutputStream file = new FileOutputStream("file.txt"); // Creates an ObjectOutputStream ObjectOutputStream output = new ObjectOutputStream(file); // Writes objects to the output stream output.writeObject(dog); FileInputStream fileStream = new FileInputStream("file.txt"); // Creates an ObjectInputStream ObjectInputStream input = new ObjectInputStream(fileStream); // Reads the objects Dog newDog = (Dog) input.readObject(); System.out.println("Dog Name: " + newDog.name); System.out.println("Dog Breed: " + newDog.breed); output.close(); input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Production
Nom du chien: Tyson Race de chien: Labrador
Dans l'exemple ci-dessus, nous avons créé
ObjectOutputStreamsortie nommée à l'aide duFileOutputStreamfichier nomméObjectInputStreamentrée nommée à l'aide duFileInputStreamfileStream nommé- Un chien objet de la classe Chien
Ici, nous avons ensuite utilisé le flux de sortie de l'objet pour écrire l'objet dans le fichier. Et, le flux d'entrée d'objet pour lire l'objet à partir du fichier.
Remarque : la classe Dog implémente l' Serializableinterface. C'est parce que le ObjectOutputStreamseul écrit les objets sérialisables dans le flux de sortie.
Autres méthodes d'ObjectInputStream
| Méthodes | Descriptions |
|---|---|
available() | renvoie le nombre d'octets disponibles dans le flux d'entrée |
mark() | marque la position dans le flux d'entrée jusqu'à laquelle les données ont été lues |
reset() | renvoie le contrôle au point du flux d'entrée où la marque a été définie |
skipBytes() | ignore et supprime les octets spécifiés du flux d'entrée |
close() | ferme le flux d'entrée de l'objet |
Pour en savoir plus, visitez Java ObjectInputStream (documentation Java officielle).








