Java ObjectInputStream-Klasse
Java ObjectInputStream-Klasse
In diesem Tutorial lernen wir Java ObjectOutputStream und seine Methoden anhand von Beispielen kennen.
Der ObjectInputStream
Klasse der java.io
Paket kann verwendet werden, um Objekte zu lesen, die zuvor von ObjectOutputStream
geschrieben wurden .
Es erweitert die InputStream
abstrakte Klasse.
Bevor Sie etwas über ObjectInputStream
erfahren Klasse, vergewissern Sie sich, dass Sie die ObjectOutputStream-Klasse kennen.
Funktion von ObjectInputStream
Die ObjectInputStream
wird hauptsächlich zum Lesen von Daten verwendet, die von ObjectOutputStream
geschrieben wurden .
Im Grunde die ObjectOutputStream
konvertiert 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 diese Objekte jetzt lesen müssen, verwenden wir den ObjectInputStream
Dadurch werden die Streams wieder in entsprechende Objekte konvertiert. Dies wird als Deserialisierung bezeichnet.
Erstellen Sie einen ObjectInputStream
Um einen Objekteingabestrom zu erstellen, müssen wir den java.io.ObjectInputStream
importieren Paket zuerst. Sobald wir das Paket importiert haben, können wir wie folgt einen Eingabestrom 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 Objekteingabestrom namens objStream erstellt die mit dem Dateieingabestream namens fileStream verknüpft ist .
Jetzt die objStream
kann verwendet werden, um Objekte aus der Datei zu lesen.
Methoden von ObjectInputStream
Die ObjectInputStream
-Klasse stellt Implementierungen verschiedener Methoden bereit, die in InputStream
vorhanden sind Klasse.
read()-Methode
read()
- liest ein Datenbyte aus dem EingabestromreadBoolean()
- liest Daten in boolescher FormreadChar()
- liest Daten in ZeichenformreadInt()
- liest Daten in ganzzahliger FormreadObject()
- liest das Objekt aus dem Eingabestrom
Beispiel 1:Java ObjectInputStream
Mal sehen, wie wir den ObjectInputStream
verwenden können Klasse zum Lesen von Objekten, die von ObjectOutputStream
geschrieben wurden Klasse.
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 data: 5 String data: This is programiz
Im obigen Beispiel haben wir den readInt()
verwendet und readObject()
Methode zum Lesen von Ganzzahldaten und Objektdaten aus der Datei.
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 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
Dog Name: Tyson Dog Breed: Labrador
Im obigen Beispiel haben wir
erstelltObjectOutputStream
mit dem Namen Ausgabe mit demFileOutputStream
namens DateiObjectInputStream
mit dem Namen Eingabe mit demFileInputStream
mit dem Namen fileStream- Ein Objekt Hund 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 die serialisierbaren Objekte in den Ausgabestrom.
Andere Methoden von ObjectInputStream
Methoden | Beschreibungen |
---|---|
available() | gibt die verfügbare Anzahl von Bytes im Eingabestrom zurück |
mark() | markiert die Position im Eingabestrom, bis zu der Daten gelesen wurden |
reset() | gibt die Kontrolle an den Punkt im Eingabestrom zurück, an dem die Markierung gesetzt wurde |
skipBytes() | überspringt und verwirft die angegebenen Bytes aus dem Eingabestrom |
close() | schließt den Objekteingabestrom |
Um mehr zu erfahren, besuchen Sie Java ObjectInputStream (offizielle Java-Dokumentation).
Java