English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial lernen wir durch Beispiele Java ObjectOutputStream und seine Methoden kennen.
Die Klasse ObjectOutputStream aus dem java.io-Paket kann verwendet werden, um Objekte zu schreiben, die von ObjectInputStream gelesen werden können.
Es erbt die abstrakte Klasse OutputStream.
Grundsätzlich codiert ObjectOutputStream Java-Objekte mit Hilfe von Klassennamen und Objektwerten. Daher werden entsprechend Streams generiert. Dieser Prozess wird Serialisierung genannt.
Diese umgewandelten Ströme können in Dateien gespeichert und zwischen Netzwerken übertragen werden.
Achtung:Der ObjectOutputStream-Klasse werden nur solche Objekte geschrieben, die das Serializable-Interface implementieren. Dies liegt daran, dass Objekte bei der Schreibaktion im Stream serialisiert werden müssen.
Um einen ObjektAusgabestrom zu erstellen, müssen wir zunächst das Paket java.io.ObjectOutputStream importieren. Nach dem Importieren des Pakets können Sie den Ausgabestrom erstellen.
//Erstellen Sie einen FileOutputStream, um Objekte in ObjectOutputStream zu schreiben FileOutputStream fileStream = new FileOutputStream(String file); //Erstellen Sie ein ObjectOutputStream ObjectOutputStream objStream = new ObjectOutputStream(fileStream);
Im obigen Beispiel haben wir einen Named objStream als Objekt-Ausgabestrom erstellt, der mit dem Named fileStream verknüpft ist.
Die ObjectOutputStream-Klasse bietet Implementierungen für verschiedene Methoden, die in der OutputStream-Klasse auftreten.
write() - Daten als Bytes in den Ausgabestrom schreiben
writeBoolean() - Daten als Boolean schreiben
writeChar() - Daten als Zeichen schreiben
writeInt() - Daten als Ganzzahl schreiben
writeObject() - 将对象写入输出流
Lassen Sie uns sehen, wie wir Objekte mit ObjectOutputStream in eine Datei speichern und wie wir diese Objekte mit ObjectInputStream aus der Datei 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 = "Dies ist w3codebox try { FileOutputStream file = new FileOutputStream("file.txt"); //创建一个ObjectOutputStream ObjectOutputStream output = new ObjectOutputStream(file); //将对象写入输出流 output.writeInt(data1 output.writeObject(data2 //Daten mit ObjectInputStream lesen FileInputStream fileStream = new FileInputStream("file.txt"); ObjectInputStream objStream = new ObjectInputStream(fileStream); System.out.println("Ganzzahlendaten: "); + objStream.readInt()); System.out.println("String data: " ); + objStream.readObject()); output.close(); objStream.close(); } catch (Exception e) { e.getStackTrace(); } } }
Ausgaberesultat
Ganzzahlendaten: 5 String data: Dies ist w3codebox
In dem obigen Beispiel haben wir die Methoden readInt() und readObject() verwendet, um Ganzzahlendaten und Objektdaten aus der Datei zu lesen.
在这里,我们使用ObjectOutputStream将数据写入文件。然后使用ObjectInputStream从文件中读取数据。
再举一个实例
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) { //创建一个Dog类的对象 Dog dog1 = new Dog("泰里", "拉布拉多猎犬"); try { FileOutputStream fileOut = new FileOutputStream("file.txt"); //创建一个ObjectOutputStream ObjectOutputStream objOut = new ObjectOutputStream(fileOut); //将对象写入输出流 objOut.writeObject(dog1 //读取对象 FileInputStream fileIn = new FileInputStream("file.txt"); ObjectInputStream objIn = new ObjectInputStream(fileIn); // 读取对象 Dog newDog = (Dog) objIn.readObject(); System.out.println("狗名: "); + newDog.name); System.out.println("犬种: "); + newDog.breed); objOut.close(); objIn.close(); } catch (Exception e) { e.getStackTrace(); } } }
Ausgaberesultat
Hundename: Terry Hunderasse: Labrador Retriever
In dem obigen Beispiel haben wir erstellt
Der ObjectOutputStream namens objOut verwendet den FileOutputStream namens fileOut.
Der ObjectInputStream namens objIn verwendet den FileInputStream namens fileIn.
Das Objekt der Klasse Dog namens dog1.
Hier verwenden wir dann den ObjectOutputStream, um Objekte in die Datei zu schreiben. Und der ObjectInputStream liest Objekte aus der Datei.
AchtungHinweis: Hier verwenden wir den ObjectOutputStream, um Objekte in die Datei zu schreiben. Und der ObjectInputStream liest Objekte aus der Datei.
Methode | Inhaltsbeschreibung |
---|---|
flush() | Alle Daten im Ausgabestrom löschen |
drain() | Alle gepufferten Daten in den Ausgabestrom einfügen |
close() | Schließe den Ausgabestrom |