I denne opplæringen vil vi lære om Java ObjectOutputStream og dens metoder ved hjelp av eksempler.
Den ObjectOutputStreamklassen av java.iopakken kan brukes til å skrive objekter som kan leses av ObjectInputStream.
Det utvider den OutputStreamabstrakte klassen.

Arbeid med ObjectOutputStream
I utgangspunktet ObjectOutputStreamkoder Java-objekter ved hjelp av klassenavn og objektverdier. Og genererer dermed tilsvarende strømmer. Denne prosessen er kjent som serialisering.
Disse konverterte strømmer kan lagres i filer og kan overføres mellom nettverk.
Merk : ObjectOutputStreamKlassen skriver bare de objektene som implementerer Serializablegrensesnittet. Dette er fordi objekter må serialiseres mens du skriver til strømmen
Opprett en ObjectOutputStream
For å lage en objektutgangsstrøm, må vi først importere java.io.ObjectOutputStreampakken. Når vi har importert pakken, kan du lage en utgangsstrøm her.
 // Creates a FileOutputStream where objects from ObjectOutputStream are written FileOutputStream fileStream = new FileOutputStream(String file); // Creates the ObjectOutputStream ObjectOutputStream objStream = new ObjectOutputStream(fileStream); 
I eksemplet ovenfor har vi opprettet en objektutgangsstrøm med navnet objStream som er knyttet til filutgangsstrømmen med navnet fileStream.
Metoder for ObjectOutputStream
Den ObjectOutputStreamklasse gir implementeringer for forskjellige metoder for å medføre i OutputStreamklassen.
skriv () Metode
write()- skriver en byte med data til utgangsstrømmenwriteBoolean()- skriver data i boolsk formwriteChar()- skriver data i karakterformwriteInt()- skriver data i heltallwriteObject()- skriver objekt til utgangsstrømmen
Eksempel 1: Java ObjectOutputStream
La oss se hvordan vi kan bruke ObjectOutputStreamtil å lagre objekter i en fil og ObjectInputStreamlese disse objektene fra filene
 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(); ) ) ) 
Produksjon
Heltalldata: 5 Strengdata: Dette er programiz
I eksemplet ovenfor har vi brukt readInt()metoden og readObject()metoden til å lese et heltallsdata og objektdata fra filene.
Her har vi brukt til ObjectOutputStreamå skrive data til filen. Vi leser deretter dataene fra filen ved hjelp av ObjectInputStream.
Eksempel 2: Java ObjectOutputStream
La oss ta et annet eksempel,
 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(); ) ) ) 
Produksjon
Hundenavn: Tyson Hunderase: Labrador
I eksemplet ovenfor har vi opprettet
ObjectOutputStreamkalt objOut ved hjelp av denFileOutputStreamnavngitte fileOutObjectInputStreamkalt objIn ved hjelp av denFileInputStreamvalgte filenIn.- En objekthund1 av hundeklassen.
 
Her har vi deretter brukt objektets utgangsstrøm til å skrive objektet til filen. Og inngangsstrømmen for å lese objektet fra filen.
Merk : Hundeklassen implementerer Serializablegrensesnittet. Det er fordi de ObjectOutputStreameneste skriver objektene som kan serialiseres til utgangsstrømmen.
Andre metoder for ObjectOutputStream
| Metoder | Beskrivelser | 
|---|---|
flush() |  sletter alle dataene fra utgangsstrømmen | 
drain() |  setter alle bufrede data i utdatastrømmen | 
close() |  lukker utgangsstrømmen | 
For å lære mer, besøk Java ObjectOutputStream (offisiell Java-dokumentasjon).








