„Java ObjectOutputStream“ (su pavyzdžiais)

Š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 formos
  • writeChar() - rašo duomenis simbolių pavidalu
  • writeInt() - rašo duomenis sveiko skaičiaus pavidalu
  • writeObject() 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 naudojant FileOutputStreampavadintą fileOut
  • ObjectInputStreampavadintas objIn naudojant FileInputStreampavadintą 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).

Įdomios straipsniai...