V tomto tutoriáli sa pomocou príkladov dozvieme o prostredí Java ObjectOutputStream a jeho metódach.
ObjectInputStreamTrieda java.ioobalu môže byť použitý pre čítanie objekty, ktoré boli už skôr napísané ObjectOutputStream.
Rozširuje InputStreamabstraktnú triedu.

Predtým, ako sa dozviete niečo o ObjectInputStreamtriede, nezabudnite vedieť o triede ObjectOutputStream.
Fungovanie ObjectInputStream
Používa ObjectInputStreamsa hlavne na čítanie údajov zapísaných serverom ObjectOutputStream.
V zásade ObjectOutputStreamprevádza objekty Java na zodpovedajúce toky. Toto sa nazýva serializácia. Tieto prevedené streamy je možné uložiť do súborov alebo preniesť cez siete.
Teraz, ak potrebujeme tieto objekty prečítať, použijeme nástroj, ObjectInputStreamktorý prevedie prúdy späť na zodpovedajúce objekty. Toto sa nazýva deserializácia.
Vytvorte ObjectInputStream
Aby sme vytvorili vstupný prúd objektov, musíme najskôr importovať java.io.ObjectInputStreambalík. Po importovaní balíka môžeme vytvoriť vstupný tok.
 // 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); 
Vo vyššie uvedenom príklade sme vytvorili vstupný tok objektov s názvom objStream, ktorý je prepojený so vstupným tokom súborov s názvom fileStream.
Teraz je objStreammožné ich použiť na čítanie objektov zo súboru.
Metódy ObjectInputStream
ObjectInputStreamTrieda poskytuje implementácia rôznych metód prezentovať vo InputStreamtriede.
metóda read ()
- read()- načíta bajt dát zo vstupného toku
- readBoolean()- číta dáta v booleovskej podobe
- readChar()- číta dáta vo forme znakov
- readInt()- číta dáta v celočíselnej podobe
- readObject()- načíta objekt zo vstupného toku
Príklad 1: Java ObjectInputStream
Pozrime sa, ako môžeme pomocou ObjectInputStreamtriedy čítať objekty napísané ObjectOutputStreamtriedou.
 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(); ) ) ) 
Výkon
Celé dáta: 5 Reťazcové údaje: Toto je programové
Vo vyššie uvedenom príklade sme použili metódu readInt()and readObject()na načítanie celočíselných údajov a údajov o objektoch zo súboru.
Tu sme použili ObjectOutputStreamna zápis údajov do súboru. Údaje zo súboru potom načítame pomocou súboru ObjectInputStream.
Príklad 2: Java ObjectInputStream
Pozrime sa na ďalší praktický príklad,
 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(); ) ) ) 
Výkon
Meno psa: Tyson Plemeno psa: Labrador
Vo vyššie uvedenom príklade sme vytvorili
- ObjectOutputStreampomenovaný výstup pomocou- FileOutputStreampomenovaného súboru
- ObjectInputStreampomenovaný vstup pomocou- FileInputStreampomenovaného fileStream
- Objektový pes triedy Pes
Tu sme potom použili výstupný prúd objektu na zápis objektu do súboru. A vstupný prúd objektu na načítanie objektu zo súboru.
Poznámka : Trieda Dog implementuje Serializablerozhranie. Je to preto, lebo ObjectOutputStreamjediný zapisuje serializovateľné objekty do výstupného toku.
Ďalšie metódy ObjectInputStream
| Metódy | Popisy | 
|---|---|
| available()  | vráti dostupný počet bajtov vo vstupnom toku | 
| mark()  | označí pozíciu vo vstupnom toku, do ktorej boli načítané údaje | 
| reset()  | vráti ovládací prvok do bodu vo vstupnom toku, kde bola nastavená značka | 
| skipBytes()  | preskočí a zahodí zadané bajty zo vstupného toku | 
| close()  | zavrie vstupný prúd objektu | 
Ak sa chcete dozvedieť viac, navštívte stránku Java ObjectInputStream (oficiálna dokumentácia Java).








