Java ObjectOutputStream (koos näidetega)

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 baidi
  • writeBoolean() - kirjutab andmed boolean kujul
  • writeChar() - kirjutab andmed märkide kujul
  • writeInt() - kirjutab andmed täisarvu kujul
  • writeObject() - 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, kasutades FileOutputStreamnimega fileOut
  • ObjectInputStreamnimega objIn nimega fileIn kasutades FileInputStream.
  • 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).

Huvitavad Artiklid...