English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java Grund教程

Java Flow Control

Java Array

Java objektorientiert (I)

Java objektorientiert (II)

Java objektorientiert (III)

Java Ausnahmebehandlung

Java Liste (List)

Java Queue (Warteschlange)

Java Map-Kollektion

Java Set-Kollektion

Java Eingabe-Ausgabe(I/O)

Java Reader/Writer

Andere Themen von Java

Java ObjectOutputStream Klasse

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.

Arbeitsweise von ObjectOutputStream

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.

创建一个ObjectOutputStream

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.

Methoden der ObjectOutputStream

Die ObjectOutputStream-Klasse bietet Implementierungen für verschiedene Methoden, die in der OutputStream-Klasse auftreten.

write() Methode

  • write() - Daten als Bytes in den Ausgabestrom schreiben

  • writeBoolean() - Daten als Boolean schreiben

  • writeChar() - Daten als Zeichen schreiben

  • writeInt() - Daten als Ganzzahl schreiben

  • writeObject() - 将对象写入输出流

示例1:Java ObjectOutputStream

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从文件中读取数据。

示例2:Java ObjectOutputStream

再举一个实例

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.

Andere Methoden von ObjectOutputStream

MethodeInhaltsbeschreibung
flush()Alle Daten im Ausgabestrom löschen
drain()Alle gepufferten Daten in den Ausgabestrom einfügen
close()Schließe den Ausgabestrom