Java ObjectOutputStream (mit Beispielen)

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

Die ObjectOutputStreamKlasse des java.ioPakets kann zum Schreiben von Objekten verwendet werden, die von gelesen werden können ObjectInputStream.

Es erweitert die OutputStreamabstrakte Klasse.

Funktionieren von ObjectOutputStream

Grundsätzlich ObjectOutputStreamcodiert das Java-Objekte unter Verwendung des Klassennamens und der Objektwerte. Und erzeugt somit entsprechende Streams. Dieser Vorgang wird als Serialisierung bezeichnet.

Diese konvertierten Streams können in Dateien gespeichert und zwischen Netzwerken übertragen werden.

Hinweis : Die ObjectOutputStreamKlasse schreibt nur die Objekte, die die SerializableSchnittstelle implementieren . Dies liegt daran, dass Objekte beim Schreiben in den Stream serialisiert werden müssen

Erstellen Sie einen ObjectOutputStream

Um einen Objektausgabestream zu erstellen, müssen wir java.io.ObjectOutputStreamzuerst das Paket importieren . Sobald wir das Paket importiert haben, können wir hier einen Ausgabestream erstellen.

 // Creates a FileOutputStream where objects from ObjectOutputStream are written FileOutputStream fileStream = new FileOutputStream(String file); // Creates the ObjectOutputStream ObjectOutputStream objStream = new ObjectOutputStream(fileStream); 

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

Methoden von ObjectOutputStream

Die ObjectOutputStreamKlasse bietet Implementierungen für verschiedene in der OutputStreamKlasse vorhandene Methoden .

write () Methode

  • write() - schreibt ein Datenbyte in den Ausgabestream
  • writeBoolean() - schreibt Daten in boolescher Form
  • writeChar() - schreibt Daten in Zeichenform
  • writeInt() - schreibt Daten in ganzzahliger Form
  • writeObject() - schreibt ein Objekt in den Ausgabestream

Beispiel 1: Java ObjectOutputStream

Mal sehen, wie wir ObjectOutputStreamObjekte in einer Datei speichern und ObjectInputStreamdiese Objekte aus den Dateien lesen können

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

Ausgabe

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

Im obigen Beispiel haben wir die readInt()Methode und die readObject()Methode verwendet, um ganzzahlige Daten und Objektdaten aus den Dateien 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 ObjectOutputStream

Nehmen wir ein anderes Beispiel:

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

Ausgabe

 Hundename: Tyson Hunderasse: Labrador 

Im obigen Beispiel haben wir erstellt

  • ObjectOutputStreambenanntes objOut mit dem FileOutputStreambenannten fileOut
  • ObjectInputStreambenanntes objIn mit dem FileInputStreambenannten fileIn.
  • Ein Objekt dog1 der Dog-Klasse.

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 Objekte geschrieben werden, die in den Ausgabestream serialisiert werden können.

Andere Methoden von ObjectOutputStream

Methoden Beschreibungen
flush() löscht alle Daten aus dem Ausgabestream
drain() Setzt alle gepufferten Daten in den Ausgabestream
close() Schließt den Ausgabestream

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

Interessante Beiträge...