I denne vejledning lærer vi om Java ObjectOutputStream og dens metoder ved hjælp af eksempler.
Den ObjectInputStreamklasse af java.iopakken kan bruges til at læse objekter, der tidligere blev skrevet af ObjectOutputStream.
Det udvider den InputStreamabstrakte klasse.

Før du lærer om ObjectInputStreamklassen, skal du sørge for at kende til ObjectOutputStream-klassen.
Arbejde med ObjectInputStream
Den ObjectInputStreambruges hovedsageligt til at læse data skrevet af ObjectOutputStream.
Dybest set ObjectOutputStreamkonverterer Java-objekter til tilsvarende strømme. Dette er kendt som serialisering. Disse konverterede streams kan gemmes i filer eller overføres via netværk.
Nu, hvis vi har brug for at læse disse objekter, bruger vi den ObjectInputStream, der konverterer strømme tilbage til tilsvarende objekter. Dette er kendt som deserialisering.
Opret en ObjectInputStream
For at oprette en objektinputstrøm skal vi først importere java.io.ObjectInputStreampakken. Når vi først har importeret pakken, kan du oprette en inputstrø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 ovenstående eksempel har vi oprettet en objektinputstrøm med navnet objStream, der er knyttet til filinputstrømmen med navnet fileStream.
Nu objStreamkan den bruges til at læse objekter fra filen.
Metoder til ObjectInputStream
Den ObjectInputStreamklasse giver implementeringer af forskellige metoder præsentere i InputStreamklasse.
læs () Metode
read()- læser en byte af data fra inputstrømmenreadBoolean()- læser data i boolsk formreadChar()- læser data i karakterformreadInt()- læser data i heltal formreadObject()- læser objektet fra inputstrømmen
Eksempel 1: Java ObjectInputStream
Lad os se, hvordan vi kan bruge ObjectInputStreamklassen til at læse objekter skrevet af 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(); ) ) ) 
Produktion
Heltalsdata: 5 Stringdata: Dette er programiz
I ovenstående eksempel har vi brugt readInt()og readObject()metode til at læse heltal data og objekt data fra filen.
Her har vi brugt den ObjectOutputStreamtil at skrive data til filen. Vi læser derefter dataene fra filen ved hjælp af ObjectInputStream.
Eksempel 2: Java ObjectInputStream
Lad os se et andet 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(); ) ) ) 
Produktion
Hundens navn: Tyson Hunderace: Labrador
I ovenstående eksempel har vi oprettet
ObjectOutputStreamnavngivet output ved hjælp af denFileOutputStreamnavngivne filObjectInputStreamnavngivet input ved hjælp af denFileInputStreamnavngivne fileStream- En objekthund af hundeklassen
 
Her har vi derefter brugt objektets outputstrøm til at skrive objektet til filen. Og objektets inputstrøm for at læse objektet fra filen.
Bemærk : Hundeklassen implementerer Serializablegrænsefladen. Det er fordi den ObjectOutputStreameneste skriver de serialiserbare objekter til outputstrømmen.
Andre metoder til ObjectInputStream
| Metoder | Beskrivelser | 
|---|---|
available()  |  returnerer det tilgængelige antal bytes i inputstrømmen | 
mark()  |  markerer positionen i inputstrømmen, op til hvilken data er blevet læst | 
reset()  |  returnerer kontrolelementet til det punkt i inputstrømmen, hvor mærket blev sat | 
skipBytes()  |  springer og kasserer de specificerede bytes fra inputstrømmen | 
close()  |  lukker objektets inputstrøm | 
For at lære mere, besøg Java ObjectInputStream (officiel Java-dokumentation).








