V tomto tutoriáli sa pomocou príkladov dozvieme o prostredí Java ObjectOutputStream a jeho metódach.
ObjectOutputStreamTrieda java.iobalíček možno použiť na napísanie predmety, ktoré môžu byť prečítané ObjectInputStream.
Rozširuje OutputStreamabstraktnú triedu.

Fungovanie ObjectOutputStream
V zásade ObjectOutputStreamkóduje objekty Java pomocou názvu triedy a hodnôt objektov. A teda generuje zodpovedajúce prúdy. Tento proces sa nazýva serializácia.
Tieto prevedené streamy môžu byť uložené v súboroch a môžu byť prenášané medzi sieťami.
Poznámka : ObjectOutputStreamTrieda zapisuje iba tie objekty, ktoré implementujú Serializablerozhranie. Je to tak preto, lebo objekty je potrebné počas zápisu do streamu serializovať
Vytvorte ObjectOutputStream
Aby sme mohli vytvoriť výstupný prúd objektu, musíme najskôr importovať java.io.ObjectOutputStreambalík. Po importovaní balíka môžeme vytvoriť výstupný prúd.
// Creates a FileOutputStream where objects from ObjectOutputStream are written FileOutputStream fileStream = new FileOutputStream(String file); // Creates the ObjectOutputStream ObjectOutputStream objStream = new ObjectOutputStream(fileStream);
Vo vyššie uvedenom príklade sme vytvorili výstupný prúd objektu s názvom objStream, ktorý je prepojený s výstupným prúdom súboru s názvom fileStream.
Metódy ObjectOutputStream
ObjectOutputStreamTrieda poskytuje implementácie pre rôzne metódy prezentovať vo OutputStreamtriede.
metóda write ()
write()- zapisuje bajt dát do výstupného tokuwriteBoolean()- zapisuje údaje v booleovskej podobewriteChar()- zapisuje údaje vo forme znakovwriteInt()- zapisuje údaje v celočíselnom tvarewriteObject()- zapíše objekt do výstupného toku
Príklad 1: Java ObjectOutputStream
Pozrime sa, ako môžeme použiť ObjectOutputStreamna ukladanie objektov do súboru a ObjectInputStreamna čítanie týchto objektov zo súborov
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(); ) ) )
Výkon
Celé dáta: 5 Reťazcové údaje: Toto je programové
Vo vyššie uvedenom príklade sme použili readInt()metódu a readObject()metódu na načítanie celočíselných údajov a objektových údajov zo súborov.
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 ObjectOutputStream
Zoberme si ďalší 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 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(); ) ) )
Výkon
Meno psa: Tyson Plemeno psa: Labrador
Vo vyššie uvedenom príklade sme vytvorili
ObjectOutputStreampomenovaný objOut pomocouFileOutputStreampomenovaného fileOutObjectInputStreampomenovaný objIn pomocouFileInputStreampomenovaného fileIn.- Objekt dog1 triedy Dog.
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 objekty, ktoré je možné serializovať do výstupného toku.
Ďalšie metódy ObjectOutputStream
| Metódy | Popisy |
|---|---|
flush() | vymaže všetky údaje z výstupného toku |
drain() | umiestni všetky dáta vo vyrovnávacej pamäti do výstupného toku |
close() | uzavrie výstupný prúd |
Ak sa chcete dozvedieť viac, navštívte Java ObjectOutputStream (oficiálna dokumentácia Java).








