Java ObjectOutputStream-Klasse
Java ObjectOutputStream-Klasse
In diesem Tutorial lernen wir Java ObjectOutputStream und seine Methoden anhand von Beispielen kennen.
Der ObjectOutputStream
Klasse der java.io
Paket kann verwendet werden, um Objekte zu schreiben, die von ObjectInputStream
gelesen werden können .
Es erweitert die OutputStream
abstrakte Klasse.
Funktion von ObjectOutputStream
Im Grunde die ObjectOutputStream
codiert Java-Objekte unter Verwendung des Klassennamens und der Objektwerte. Und erzeugt daher entsprechende Streams. Dieser Vorgang wird als Serialisierung bezeichnet.
Diese konvertierten Streams können in Dateien gespeichert und zwischen Netzwerken übertragen werden.
Hinweis :Der ObjectOutputStream
Klasse schreibt nur die Objekte, die den Serializable
implementieren Schnittstelle. Das liegt daran, dass Objekte beim Schreiben in den Stream serialisiert werden müssen
Erstellen Sie einen ObjectOutputStream
Um einen Objektausgabestrom zu erstellen, müssen wir den java.io.ObjectOutputStream
importieren Paket zuerst. Sobald wir das Paket importiert haben, können wir wie folgt 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 Objektausgabestrom namens objStream erstellt die mit dem Dateiausgabestrom namens fileStream verknüpft ist .
Methoden von ObjectOutputStream
Die ObjectOutputStream
-Klasse stellt Implementierungen für verschiedene Methoden bereit, die in OutputStream
vorhanden sind Klasse.
write()-Methode
write()
- schreibt ein Datenbyte in den AusgabestromwriteBoolean()
- schreibt Daten in boolescher FormwriteChar()
- schreibt Daten in ZeichenformwriteInt()
- schreibt Daten in Integer-FormwriteObject()
- schreibt Objekt in den Ausgabestrom
Beispiel 1:Java ObjectOutputStream
Mal sehen, wie wir ObjectOutputStream
verwenden können um Objekte in einer Datei zu speichern und ObjectInputStream
um diese Objekte aus den Dateien 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");
// 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 data: 5 String data: This is programiz
Im obigen Beispiel haben wir den readInt()
verwendet Methode und readObject()
Methode zum Lesen von Ganzzahldaten und Objektdaten aus den Dateien.
Hier haben wir den ObjectOutputStream
verwendet 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 weiteres 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
Dog Name: Tyson Dog Breed: Labrador
Im obigen Beispiel haben wir
erstelltObjectOutputStream
namens objOut mit demFileOutputStream
namens fileOutObjectInputStream
mit dem Namen objIn mit demFileInputStream
mit dem Namen fileIn .- Ein Objekt dog1 des Hundes Klasse.
Hier haben wir dann den Objektausgabestrom verwendet, um das Objekt in die Datei zu schreiben. Und der Objekteingabestrom zum Lesen des Objekts aus der Datei.
Hinweis :Der Hund Klasse implementiert den Serializable
Schnittstelle. Das liegt daran, dass ObjectOutputStream
schreibt nur Objekte, die in den Ausgabestrom serialisiert werden können.
Andere Methoden von ObjectOutputStream
Methoden | Beschreibungen |
---|---|
flush() | löscht alle Daten aus dem Ausgabestrom |
drain() | legt alle gepufferten Daten in den Ausgabestrom |
close() | schließt den Ausgabestrom |
Um mehr zu erfahren, besuchen Sie Java ObjectOutputStream (offizielle Java-Dokumentation).
Java