Selles õpetuses õpime näidete abil Java ObjectOutputStreami ja selle meetodeid.
ObjectInputStreamKlassi java.iopakett saab kasutada lugeda esemed, mis olid varem kirjutanud ObjectOutputStream.
See laiendab InputStreamabstraktset klassi.

Enne ObjectInputStreamklassi tundmaõppimist veenduge, et teaksite ObjectOutputStream klassi kohta.
ObjectInputStreami töötamine
Seda ObjectInputStreamkasutatakse peamiselt ObjectOutputStream.
Põhimõtteliselt ObjectOutputStreamteisendab Java objektid vastavateks voogudeks. Seda tuntakse kui serialiseerimist. Neid teisendatud vooge saab failidesse salvestada või võrkude kaudu üle kanda.
Kui peame neid objekte lugema, kasutame seda, ObjectInputStreammis muudab voogud vastavateks objektideks. Seda tuntakse deserialiseerumisena.
Looge ObjectInputStream
Objekti sisendvoo loomiseks peame java.io.ObjectInputStreamesmalt paketi importima . Kui pakett on imporditud, saame sisendvoo luua järgmiselt.
// Creates a file input stream linked with the specified file FileInputStream fileStream = new FileInputStream(String file); // Creates an object input stream using the file input stream ObjectInputStream objStream = new ObjectInputStream(fileStream);
Ülalolevas näites oleme loonud objekti sisendvoo nimega objStream, mis on seotud failisisestusvooga nimega fileStream.
Nüüd objStreamsaab seda failist objektide lugemiseks kasutada.
ObjectInputStreami meetodid
ObjectInputStreamTasemega näeb rakenduste erinevaid meetodeid sisalduse funktsioon InputStreamtasemega.
loe () meetod
read()- loeb sisendivoo andmete baitireadBoolean()- loeb andmeid tõeväärtuse kujulreadChar()- loeb andmeid märkide kujulreadInt()- loeb andmeid täisarvu kujulreadObject()- loeb objekti sisendvoost
Näide 1: Java ObjectInputStream
Vaatame, kuidas saame ObjectInputStreamklassi kasutada klassi kirjutatud objektide lugemiseks ObjectOutputStream.
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"); ObjectOutputStream output = new ObjectOutputStream(file); // Writing to the file using ObjectOutputStream output.writeInt(data1); output.writeObject(data2); FileInputStream fileStream = new FileInputStream("file.txt"); // Creating an object input stream ObjectInputStream objStream = new ObjectInputStream(fileStream); //Using the readInt() method System.out.println("Integer data :" + objStream.readInt()); // Using the readObject() method 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
Eespool toodud näites, oleme kasutanud readInt()ja readObject()meetod lugeda täisarv andmeid ja objekti andmeid faili.
Siin oleme kasutanud ObjectOutputStreamfaili andmete kirjutamiseks. Seejärel lugesime failist andmeid, kasutades ObjectInputStream.
Näide 2: Java ObjectInputStream
Vaatame veel ühte praktilist näidet,
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 dog = new Dog("Tyson", "Labrador"); try ( FileOutputStream file = new FileOutputStream("file.txt"); // Creates an ObjectOutputStream ObjectOutputStream output = new ObjectOutputStream(file); // Writes objects to the output stream output.writeObject(dog); FileInputStream fileStream = new FileInputStream("file.txt"); // Creates an ObjectInputStream ObjectInputStream input = new ObjectInputStream(fileStream); // Reads the objects Dog newDog = (Dog) input.readObject(); System.out.println("Dog Name: " + newDog.name); System.out.println("Dog Breed: " + newDog.breed); output.close(); input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Väljund
Koera nimi: Tysoni koeratõug: labrador
Ülaltoodud näites oleme loonud
ObjectOutputStreamnimega väljundFileOutputStreamnimega faili abilObjectInputStreamnimega sisendFileInputStreamnimega fileStream- Koeraklassi objektikoer
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 ObjectOutputStreamainus seerialiseeritavaid objekte kirjutab väljundvoogu.
Muud ObjectInputStreami meetodid
| Meetodid | Kirjeldused |
|---|---|
available() | tagastab sisendvoos saadaoleva baitide arvu |
mark() | tähistab sisendvoos asukohta, kuhu andmed on loetud |
reset() | tagastab juhtelemendi sisendvoos punkti, kuhu märk oli seatud |
skipBytes() | jätab määratud baid sisendvoost vahele ja loobub sellest |
close() | sulgeb objekti sisendvoo |
Lisateabe saamiseks külastage Java ObjectInputStream (ametlik Java-dokumentatsioon).








