Selles õpetuses õpime näidete abil Java ObjectOutputStreami ja selle meetodeid.
ObjectOutputStreamKlassi java.iopakett saab kasutada kirjutada objektid, mida saab lugeda ObjectInputStream.
See laiendab OutputStreamabstraktset klassi.

ObjectOutputStreami töötamine
Põhimõtteliselt ObjectOutputStreamkodeerib Java objektid klassi nime ja objekti väärtusi kasutades. Ja seega genereerib vastavad voogud. Seda protsessi nimetatakse serialiseerimiseks.
Neid teisendatud vooge saab salvestada failidesse ja neid saab võrkude vahel üle kanda.
Märkus . ObjectOutputStreamKlass kirjutab ainult need objektid, mis rakendavad Serializableliidest. Seda seetõttu, et voos kirjutamise ajal tuleb objektid järjestada
Looge ObjectOutputStream
Objekti väljundvoo loomiseks peame java.io.ObjectOutputStreamesmalt paketi importima . Kui pakett on imporditud, saame väljundvoo luua järgmiselt.
 // Creates a FileOutputStream where objects from ObjectOutputStream are written FileOutputStream fileStream = new FileOutputStream(String file); // Creates the ObjectOutputStream ObjectOutputStream objStream = new ObjectOutputStream(fileStream); 
Ülaltoodud näites oleme loonud objekti väljundvoo nimega objStream, mis on seotud failiväljundi vooga nimega fileStream.
ObjectOutputStreami meetodid
ObjectOutputStreamTasemega näeb implementation erinevaid meetodeid sisalduse funktsioon OutputStreamtasemega.
kirjuta () meetod
write()- kirjutab väljundvoogu andmete baidiwriteBoolean()- kirjutab andmed boolean kujulwriteChar()- kirjutab andmed märkide kujulwriteInt()- kirjutab andmed täisarvu kujulwriteObject()- kirjutab objekti väljundvoogu
Näide 1: Java ObjectOutputStream
Vaatame, kuidas saame ObjectOutputStreamobjekte faili salvestada ja ObjectInputStreamneid objekte failidest lugeda
 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äljund
Täisarvandmed: 5 stringiandmed: see on programiz
Ülaltoodud näites oleme kasutanud readInt()meetodit ja readObject()meetodit täisandmete ja objektiandmete lugemiseks failidest.
Siin oleme kasutanud ObjectOutputStreamfaili andmete kirjutamiseks. Seejärel lugesime failist andmeid, kasutades ObjectInputStream.
Näide 2: Java ObjectOutputStream
Võtame veel ühe näite,
 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äljund
Koera nimi: Tysoni koeratõug: labrador
Ülaltoodud näites oleme loonud
ObjectOutputStreamnimega objOut, kasutadesFileOutputStreamnimega fileOutObjectInputStreamnimega objIn nimega fileIn kasutadesFileInputStream.- Objekti koer1 klassist Koer.
 
Siin oleme seejärel objekti faili kirjutamiseks kasutanud objekti väljundvoogu. Ja objekti sisestusvoog failist objekti lugemiseks.
Märkus : koerte klass rakendab Serializableliidest. Sellepärast, et ObjectOutputStreamainsad kirjutamisobjektid, mida saab väljundvoogu järjestada,
Muud ObjectOutputStreami meetodid
| Meetodid | Kirjeldused | 
|---|---|
flush() |  kustutab kõik andmed väljundvoost | 
drain() |  paneb kõik puhverdatud andmed väljundvoogu | 
close() |  sulgeb väljundvoo | 
Lisateabe saamiseks külastage Java ObjectOutputStream (ametlik Java dokumentatsioon).








