In diesem Tutorial lernen wir anhand von Beispielen Java ObjectOutputStream und seine Methoden kennen.
Die ObjectOutputStream
Klasse des java.io
Pakets kann zum Schreiben von Objekten verwendet werden, die von gelesen werden können ObjectInputStream
.
Es erweitert die OutputStream
abstrakte Klasse.
Funktionieren von ObjectOutputStream
Grundsätzlich ObjectOutputStream
codiert 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 ObjectOutputStream
Klasse schreibt nur die Objekte, die die Serializable
Schnittstelle 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.ObjectOutputStream
zuerst 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 ObjectOutputStream
Klasse bietet Implementierungen für verschiedene in der OutputStream
Klasse vorhandene Methoden .
write () Methode
write()
- schreibt ein Datenbyte in den AusgabestreamwriteBoolean()
- schreibt Daten in boolescher FormwriteChar()
- schreibt Daten in ZeichenformwriteInt()
- schreibt Daten in ganzzahliger FormwriteObject()
- schreibt ein Objekt in den Ausgabestream
Beispiel 1: Java ObjectOutputStream
Mal sehen, wie wir ObjectOutputStream
Objekte in einer Datei speichern und ObjectInputStream
diese 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
ObjectOutputStream
benanntes objOut mit demFileOutputStream
benannten fileOutObjectInputStream
benanntes objIn mit demFileInputStream
benannten 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 Serializable
Schnittstelle. Dies liegt daran, dass ObjectOutputStream
nur 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).