In deze tutorial zullen we met behulp van voorbeelden leren over Java ObjectOutputStream en de methoden ervan.
De ObjectOutputStreamklasse van het java.iopakket kan worden gebruikt om objecten te schrijven die kunnen worden gelezen door ObjectInputStream.
Het breidt de OutputStreamabstracte klasse uit.

Werking van ObjectOutputStream
In feite ObjectOutputStreamcodeert het Java-objecten met behulp van de klassenaam en objectwaarden. En genereert dus overeenkomstige streams. Dit proces staat bekend als serialisatie.
Die geconverteerde streams kunnen worden opgeslagen in bestanden en kunnen worden overgedragen tussen netwerken.
Opmerking : de ObjectOutputStreamklasse schrijft alleen die objecten die de Serializableinterface implementeren . Dit komt doordat objecten moeten worden geserialiseerd tijdens het schrijven naar de stream
Maak een ObjectOutputStream
Om een objectuitvoerstroom te maken, moeten we het java.io.ObjectOutputStreampakket eerst importeren . Zodra we het pakket hebben geïmporteerd, kunnen we als volgt een uitvoerstroom maken.
// Creates a FileOutputStream where objects from ObjectOutputStream are written FileOutputStream fileStream = new FileOutputStream(String file); // Creates the ObjectOutputStream ObjectOutputStream objStream = new ObjectOutputStream(fileStream);
In het bovenstaande voorbeeld hebben we een objectuitvoerstroom met de naam objStream gemaakt die is gekoppeld aan de bestandsuitvoerstroom met de naam fileStream.
Methoden van ObjectOutputStream
De ObjectOutputStreamklasse biedt implementaties voor verschillende methoden die in de OutputStreamklasse aanwezig zijn.
write () methode
write()- schrijft een byte aan gegevens naar de uitvoerstroomwriteBoolean()- schrijft gegevens in booleaanse vormwriteChar()- schrijft gegevens in karaktervormwriteInt()- schrijft gegevens in integer-vormwriteObject()- schrijft object naar de outputstroom
Voorbeeld 1: Java ObjectOutputStream
Laten we eens kijken hoe we ObjectOutputStreamobjecten in een bestand kunnen opslaan en ObjectInputStreamdie objecten uit de bestanden kunnen lezen
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(); ) ) )
Uitvoer
Geheel getal data: 5 String data: Dit is programiz
In het bovenstaande voorbeeld hebben we de readInt()methode en readObject()methode gebruikt om gegevens van een geheel getal en objectgegevens uit de bestanden te lezen.
Hier hebben we de gebruikt ObjectOutputStreamom gegevens naar het bestand te schrijven. Vervolgens lezen we de gegevens uit het bestand met behulp van de ObjectInputStream.
Voorbeeld 2: Java ObjectOutputStream
Laten we nog een voorbeeld nemen,
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(); ) ) )
Uitvoer
Hondennaam: Tyson Hondenras: Labrador
In het bovenstaande voorbeeld hebben we gemaakt
ObjectOutputStreamgenaamd objOut met behulp van deFileOutputStreamgenoemde fileOutObjectInputStreamgenaamd objIn met behulp van deFileInputStreamgenoemde fileIn.- Een object dog1 van de klasse Dog.
Hier hebben we vervolgens de objectuitvoerstroom gebruikt om het object naar het bestand te schrijven. En de objectinvoerstroom om het object uit het bestand te lezen.
Opmerking : de klasse Dog implementeert de Serializableinterface. Het is omdat de ObjectOutputStreamenige objecten schrijft die kunnen worden geserialiseerd naar de uitvoerstroom.
Andere methoden van ObjectOutputStream
| Methoden | Beschrijvingen |
|---|---|
flush() | wist alle gegevens uit de uitvoerstroom |
drain() | plaatst alle gebufferde gegevens in de outputstroom |
close() | sluit de outputstroom |
Ga voor meer informatie naar Java ObjectOutputStream (officiële Java-documentatie).








