I denne opplæringen vil vi lære om Java ObjectOutputStream og dens metoder ved hjelp av eksempler.
Den ObjectInputStreamklassen av java.iopakken kan brukes til å lese objekter som tidligere ble skrevet av ObjectOutputStream.
Det utvider den InputStreamabstrakte klassen.

Før du lærer om ObjectInputStreamklassen, må du sørge for at du vet om ObjectOutputStream-klassen.
Arbeid med ObjectInputStream
Den ObjectInputStreambrukes hovedsakelig til å lese data skrevet av ObjectOutputStream.
I utgangspunktet ObjectOutputStreamkonverterer Java-objekter til tilsvarende strømmer. Dette er kjent som serialisering. Disse konverterte strømmer kan lagres i filer eller overføres gjennom nettverk.
Nå, hvis vi trenger å lese disse objektene, vil vi bruke det ObjectInputStreamsom vil konvertere strømmer tilbake til tilsvarende objekter. Dette er kjent som deserialisering.
Opprett en ObjectInputStream
For å opprette en objektinngangsstrøm, må vi først importere java.io.ObjectInputStreampakken. Når vi har importert pakken, kan du lage en inngangsstrøm her.
 // 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); 
I eksemplet ovenfor har vi opprettet en objektinngangsstrøm kalt objStream som er koblet til filinngangsstrømmen kalt fileStream.
Nå objStreamkan den brukes til å lese objekter fra filen.
Metoder for ObjectInputStream
Den ObjectInputStreamklasse gir implementeringer av forskjellige metoder som er tilstede i den InputStreamklassen.
les () Metode
read()- leser en byte med data fra inngangsstrømmenreadBoolean()- leser data i boolsk formreadChar()- leser data i karakterformreadInt()- leser data i heltallreadObject()- leser objektet fra inngangsstrømmen
Eksempel 1: Java ObjectInputStream
La oss se hvordan vi kan bruke ObjectInputStreamklassen til å lese objekter skrevet av ObjectOutputStreamklassen.
 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(); ) ) ) 
Produksjon
Heltalldata: 5 Strengdata: Dette er programiz
I eksemplet ovenfor har vi brukt readInt()og- readObject()metoden til å lese heltalldata og objektdata fra filen.
Her har vi brukt til ObjectOutputStreamå skrive data til filen. Vi leser deretter dataene fra filen ved hjelp av ObjectInputStream.
Eksempel 2: Java ObjectInputStream
La oss se et annet praktisk 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 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(); ) ) ) 
Produksjon
Hundenavn: Tyson Hunderase: Labrador
I eksemplet ovenfor har vi opprettet
ObjectOutputStreamnavngitt utgang ved hjelp av denFileOutputStreamnavngitte filenObjectInputStreamnavngitt inngang ved hjelp av denFileInputStreamnavngitte fileStream- En gjenstandshund i 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 den ObjectOutputStreameneste som skriver serieobjekter til utgangsstrømmen.
Andre metoder for ObjectInputStream
| Metoder | Beskrivelser | 
|---|---|
available()  |  returnerer tilgjengelig antall byte i inngangsstrømmen | 
mark()  |  markerer posisjonen i inngangsstrømmen som data er lest opp til | 
reset()  |  returnerer kontrollen til punktet i inngangsstrømmen der merket ble satt | 
skipBytes()  |  hopper over og forkaster de spesifiserte bytene fra inngangsstrømmen | 
close()  |  lukker objektets inngangsstrøm | 
For å lære mer, besøk Java ObjectInputStream (offisiell Java-dokumentasjon).








