În acest tutorial, vom afla despre Java ObjectOutputStream și metodele sale cu ajutorul unor exemple.
ObjectInputStream
Clasa a java.io
pachetului poate fi folosit pentru a citi obiecte care au fost scrise anterior de ObjectOutputStream
.
Extinde InputStream
clasa abstractă.
Înainte de a afla despre ObjectInputStream
clasă, asigurați-vă că știți despre Clasa ObjectOutputStream.
Funcționarea ObjectInputStream
Este ObjectInputStream
utilizat în principal pentru a citi datele scrise de ObjectOutputStream
.
Practic, ObjectOutputStream
convertește obiectele Java în fluxuri corespunzătoare. Aceasta este cunoscută sub numele de serializare. Aceste fluxuri convertite pot fi stocate în fișiere sau transferate prin rețele.
Acum, dacă trebuie să citim acele obiecte, vom folosi ObjectInputStream
acelea care vor converti fluxurile înapoi în obiecte corespunzătoare. Aceasta este cunoscută sub numele de deserializare.
Creați un ObjectInputStream
Pentru a crea un flux de intrare a obiectelor, trebuie mai java.io.ObjectInputStream
întâi să importăm pachetul. Odată ce am importat pachetul, iată cum putem crea un flux de intrare.
// 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);
În exemplul de mai sus, am creat un flux de intrare a obiectului numit objStream care este legat de fluxul de intrare a fișierului numit fileStream.
Acum, objStream
poate fi folosit pentru a citi obiecte din fișier.
Metode de ObjectInputStream
ObjectInputStream
Clasa ofera implementari ale diferitelor metode prezintă în InputStream
clasă.
read () Metodă
read()
- citește un octet de date din fluxul de intrarereadBoolean()
- citește datele în formă booleanăreadChar()
- citește datele sub formă de caracterereadInt()
- citește datele în formă întreagăreadObject()
- citește obiectul din fluxul de intrare
Exemplul 1: Java ObjectInputStream
Să vedem cum putem folosi ObjectInputStream
clasa pentru a citi obiecte scrise de ObjectOutputStream
clasă.
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(); ) ) )
Ieșire
Date întregi: 5 șiruri de date: Acesta este programat
În exemplul de mai sus, am folosit metoda readInt()
și readObject()
pentru a citi date întregi și date obiect din fișier.
Aici, am folosit ObjectOutputStream
pentru a scrie date în fișier. Apoi citim datele din fișier folosind ObjectInputStream
.
Exemplul 2: Java ObjectInputStream
Să vedem un alt exemplu practic,
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(); ) ) )
Ieșire
Numele câinelui: Rasa de câine Tyson: Labrador
În exemplul de mai sus, am creat
ObjectOutputStream
ieșire denumită folosindFileOutputStream
fișierul numitObjectInputStream
input numit folosindFileInputStream
fileStream numit- Un câine obiect din clasa Dog
Aici, am folosit apoi fluxul de ieșire al obiectului pentru a scrie obiectul în fișier. Și, fluxul de intrare a obiectului pentru a citi obiectul din fișier.
Notă : Clasa Dog implementează Serializable
interfața. Acest lucru se datorează faptului că ObjectOutputStream
singurul scrie obiectele serializabile în fluxul de ieșire.
Alte metode ale ObjectInputStream
Metode | Descrieri |
---|---|
available() | returnează numărul disponibil de octeți din fluxul de intrare |
mark() | marchează poziția în fluxul de intrare până la care au fost citite datele |
reset() | returnează controlul la punctul din fluxul de intrare unde a fost setată marca |
skipBytes() | omite și aruncă octeții specificați din fluxul de intrare |
close() | închide fluxul de intrare a obiectului |
Pentru a afla mai multe, vizitați Java ObjectInputStream (documentație oficială Java).