Dans ce didacticiel, nous allons découvrir Java ObjectOutputStream et ses méthodes à l'aide d'exemples.
La ObjectOutputStreamclasse du java.iopackage peut être utilisée pour écrire des objets qui peuvent être lus par ObjectInputStream.
Il étend la OutputStreamclasse abstraite.

Fonctionnement d'ObjectOutputStream
Fondamentalement, le ObjectOutputStreamcode les objets Java à l'aide du nom de classe et des valeurs d'objet. Et, par conséquent, génère des flux correspondants. Ce processus est appelé sérialisation.
Ces flux convertis peuvent être stockés dans des fichiers et peuvent être transférés entre les réseaux.
Remarque : la ObjectOutputStreamclasse écrit uniquement les objets qui implémentent l' Serializableinterface. En effet, les objets doivent être sérialisés lors de l'écriture dans le flux
Créer un ObjectOutputStream
Afin de créer un flux de sortie d'objet, nous devons d'abord importer le java.io.ObjectOutputStreampackage. Une fois que nous importons le package, voici comment créer un flux de sortie.
// Creates a FileOutputStream where objects from ObjectOutputStream are written FileOutputStream fileStream = new FileOutputStream(String file); // Creates the ObjectOutputStream ObjectOutputStream objStream = new ObjectOutputStream(fileStream);
Dans l'exemple ci-dessus, nous avons créé un flux de sortie d'objet nommé objStream qui est lié au flux de sortie de fichier nommé fileStream.
Méthodes d'ObjectOutputStream
La ObjectOutputStreamclasse fournit des implémentations pour différentes méthodes présentes dans la OutputStreamclasse.
write (), méthode
write()- écrit un octet de données dans le flux de sortiewriteBoolean()- écrit les données sous forme booléennewriteChar()- écrit les données sous forme de caractèreswriteInt()- écrit les données sous forme entièrewriteObject()- écrit l'objet dans le flux de sortie
Exemple 1: Java ObjectOutputStream
Voyons comment nous pouvons utiliser ObjectOutputStreampour stocker des objets dans un fichier et ObjectInputStreampour lire ces objets à partir des fichiers
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"); // Creates an ObjectOutputStream ObjectOutputStream output = new ObjectOutputStream(file); // writes objects to output stream output.writeInt(data1); output.writeObject(data2); // Reads data using the ObjectInputStream FileInputStream fileStream = new FileInputStream("file.txt"); ObjectInputStream objStream = new ObjectInputStream(fileStream); System.out.println("Integer data :" + objStream.readInt()); 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 readInt()méthode et la readObject()méthode pour lire des données entières et des données d'objet à partir des fichiers.
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 ObjectOutputStream
Prenons un autre exemple,
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 dog1 = new Dog("Tyson", "Labrador"); try ( FileOutputStream fileOut = new FileOutputStream("file.txt"); // Creates an ObjectOutputStream ObjectOutputStream objOut = new ObjectOutputStream(fileOut); // Writes objects to the output stream objOut.writeObject(dog1); // Reads the object FileInputStream fileIn = new FileInputStream("file.txt"); ObjectInputStream objIn = new ObjectInputStream(fileIn); // Reads the objects Dog newDog = (Dog) objIn.readObject(); System.out.println("Dog Name: " + newDog.name); System.out.println("Dog Breed: " + newDog.breed); objOut.close(); objIn.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Production
Nom du chien: Tyson Race de chien: Labrador
Dans l'exemple ci-dessus, nous avons créé
ObjectOutputStreamnommé objOut en utilisant leFileOutputStreamnommé fileOutObjectInputStreamnommé objIn en utilisant leFileInputStreamnommé fileIn.- Un objet dog1 de la classe Dog.
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 les ObjectOutputStreamseuls objets d'écriture qui peuvent être sérialisés dans le flux de sortie.
Autres méthodes d'ObjectOutputStream
| Méthodes | Descriptions |
|---|---|
flush() | efface toutes les données du flux de sortie |
drain() | met toutes les données tamponnées dans le flux de sortie |
close() | ferme le flux de sortie |
Pour en savoir plus, visitez Java ObjectOutputStream (documentation Java officielle).








