Šioje pamokoje pavyzdžių pagalba sužinosime apie „Java ObjectOutputStream“ ir jos metodus.
ObjectOutputStreamKlasės java.iopakuotėje gali būti naudojamas rašyti objektus, kurie gali būti perskaityti ObjectInputStream.
Tai pratęsia OutputStreamabstrakčią klasę.

„ObjectOutputStream“ darbas
Iš esmės „ ObjectOutputStreamJava“ objektai užkoduojami naudojant klasės pavadinimą ir objekto reikšmes. Taigi, generuoja atitinkamus srautus. Šis procesas yra žinomas kaip serializavimas.
Šie konvertuoti srautai gali būti saugomi failuose ir gali būti perduodami tarp tinklų.
Pastaba : ObjectOutputStreamklasė rašo tik tuos objektus, kurie įgyvendina Serializablesąsają. Taip yra todėl, kad rašant į srautą objektai turi būti serijiniai
Sukurkite „ObjectOutputStream“
Norėdami sukurti objekto išvesties srautą, pirmiausia turime importuoti java.io.ObjectOutputStreampaketą. Kai importuosime paketą, galime sukurti išvesties srautą.
 // Creates a FileOutputStream where objects from ObjectOutputStream are written FileOutputStream fileStream = new FileOutputStream(String file); // Creates the ObjectOutputStream ObjectOutputStream objStream = new ObjectOutputStream(fileStream); 
Ankstesniame pavyzdyje mes sukūrėme objekto išvesties srautą pavadinimu objStream, kuris yra susietas su failo išvesties srautu pavadinimu fileStream.
„ObjectOutputStream“ metodai
ObjectOutputStreamKlasė suteikia realizacijos įvairių metodų pristatyti į OutputStreamklasę.
rašyti () metodas
write()- įrašo duomenų baitą į išvesties srautąwriteBoolean()- rašo duomenis loginės formoswriteChar()- rašo duomenis simbolių pavidaluwriteInt()- rašo duomenis sveiko skaičiaus pavidaluwriteObject()rašo objektą į išvesties srautą
1 pavyzdys: „Java ObjectOutputStream“
Pažiūrėkime, kaip galime naudoti ObjectOutputStreamobjektus faile saugoti ir ObjectInputStreamtuos objektus nuskaityti iš failų
 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(); ) ) ) 
Rezultatas
Sveiki skaičiai: 5 eilutės duomenys: tai programiz
Pirmiau pateiktame pavyzdyje mes naudojome readInt()metodą ir readObject()metodą sveikiems skaičiams ir objektų duomenims nuskaityti iš failų.
Čia mes naudojome ObjectOutputStreamįrašydami duomenis į failą. Tada mes perskaitėme duomenis iš failo naudodami ObjectInputStream.
2 pavyzdys: „Java ObjectOutputStream“
Paimkime kitą pavyzdį,
 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(); ) ) ) 
Rezultatas
Šuns vardas: Tysono šunų veislė: labradoras
Ankstesniame pavyzdyje mes sukūrėme
ObjectOutputStreampavadintas objOut naudojantFileOutputStreampavadintą fileOutObjectInputStreampavadintas objIn naudojantFileInputStreampavadintą fileIn.- Objektinis šuo1 iš Šuns klasės.
 
Tada mes naudojome objekto išvesties srautą, kad įrašytume objektą į failą. Objekto įvesties srautas, skirtas objektui nuskaityti iš failo.
Pastaba : šunų klasė įgyvendina Serializablesąsają. Taip yra todėl, kad ObjectOutputStreamvieninteliai rašomieji objektai gali būti nuosekliai susieti su išvesties srautu.
Kiti „ObjectOutputStream“ metodai
| Metodai | Aprašymai | 
|---|---|
flush() |  išvalo visus duomenis iš išvesties srauto | 
drain() |  visus buferinius duomenis įdeda į išvesties srautą | 
close() |  uždaro išvesties srautą | 
Norėdami sužinoti daugiau, apsilankykite „Java ObjectOutputStream“ (oficiali „Java“ dokumentacija).








