Java ObjectInputStream (mit Beispielen)

In diesem Tutorial lernen wir anhand von Beispielen Java ObjectOutputStream und seine Methoden kennen.

Die ObjectInputStreamKlasse des java.ioPakets kann zum Lesen von Objekten verwendet werden, die zuvor von geschrieben wurden ObjectOutputStream.

Es erweitert die InputStreamabstrakte Klasse.

Bevor Sie sich mit der ObjectInputStreamKlasse vertraut machen, stellen Sie sicher, dass Sie sich mit der ObjectOutputStream-Klasse auskennen.

Funktionieren von ObjectInputStream

Das ObjectInputStreamwird hauptsächlich zum Lesen von Daten verwendet, die von der ObjectOutputStream.

Grundsätzlich ObjectOutputStreamkonvertiert das Java-Objekte in entsprechende Streams. Dies wird als Serialisierung bezeichnet. Diese konvertierten Streams können in Dateien gespeichert oder über Netzwerke übertragen werden.

Wenn wir nun diese Objekte lesen müssen, verwenden wir die ObjectInputStream, die die Streams zurück in entsprechende Objekte konvertieren. Dies ist als Deserialisierung bekannt.

Erstellen Sie einen ObjectInputStream

Um einen Objekteingabestream zu erstellen, müssen wir java.io.ObjectInputStreamzuerst das Paket importieren . Sobald wir das Paket importiert haben, können wir hier einen Eingabestream erstellen.

 // 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); 

Im obigen Beispiel haben wir einen Objekteingabestream mit dem Namen objStream erstellt, der mit dem Dateieingabestream mit dem Namen fileStream verknüpft ist.

Jetzt objStreamkann das verwendet werden, um Objekte aus der Datei zu lesen.

Methoden von ObjectInputStream

Die ObjectInputStreamKlasse bietet Implementierungen verschiedener in der InputStreamKlasse vorhandener Methoden .

read () Methode

  • read() - liest ein Datenbyte aus dem Eingabestream
  • readBoolean() - liest Daten in boolescher Form
  • readChar() - liest Daten in Zeichenform
  • readInt() - liest Daten in ganzzahliger Form
  • readObject() - liest das Objekt aus dem Eingabestream

Beispiel 1: Java ObjectInputStream

Mal sehen, wie wir die ObjectInputStreamKlasse verwenden können, um von der ObjectOutputStreamKlasse geschriebene Objekte zu lesen .

 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(); ) ) ) 

Ausgabe

 Integer-Daten: 5 String-Daten: Dies ist programiz 

Im obigen Beispiel haben wir die Methode readInt()und readObject()verwendet, um ganzzahlige Daten und Objektdaten aus der Datei zu lesen.

Hier haben wir das verwendet ObjectOutputStream, um Daten in die Datei zu schreiben. Wir lesen dann die Daten aus der Datei mit dem ObjectInputStream.

Beispiel 2: Java ObjectInputStream

Sehen wir uns ein weiteres praktisches Beispiel an:

 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(); ) ) ) 

Ausgabe

 Hundename: Tyson Hunderasse: Labrador 

Im obigen Beispiel haben wir erstellt

  • ObjectOutputStreambenannte Ausgabe unter Verwendung der FileOutputStreambenannten Datei
  • ObjectInputStreambenannte Eingabe mit dem FileInputStreambenannten fileStream
  • Ein Objekthund der Hundeklasse

Hier haben wir dann den Objektausgabestream verwendet, um das Objekt in die Datei zu schreiben. Und der Objekteingabestream zum Lesen des Objekts aus der Datei.

Hinweis : Die Dog-Klasse implementiert die SerializableSchnittstelle. Dies liegt daran, dass ObjectOutputStreamnur die serialisierbaren Objekte in den Ausgabestream geschrieben werden.

Andere Methoden von ObjectInputStream

Methoden Beschreibungen
available() Gibt die verfügbare Anzahl von Bytes im Eingabestream zurück
mark() markiert die Position im Eingabestream, bis zu der Daten gelesen wurden
reset() Bringt das Steuerelement an den Punkt im Eingabestream zurück, an dem die Markierung gesetzt wurde
skipBytes() Überspringt und verwirft die angegebenen Bytes aus dem Eingabestream
close() Schließt den Objekteingabestream

Weitere Informationen finden Sie unter Java ObjectInputStream (offizielle Java-Dokumentation).

Interessante Beiträge...