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

Java-Grundlagen-Tutorial

Java Flow Control

Java Array

Java objektorientiert (I)

Java objektorientiert (II)

Java objektorientiert (III)

Java-Exceptionenbehandlung

Java Liste (Liste)

Java Queue (Warteschlange)

Java Map-Sammlung

Java Set-Sammlung

Java Ein- und Ausgabe(I/O)

Java Reader/Writer

Andere Themen von Java

Java ObjectInputStream-Klasse

In diesem Tutorial werden wir durch Beispiele lernen, wie man Java ObjectOutputStream und seine Methoden verwendet.

Die Klasse ObjectInputStream aus dem Paket java.io kann zum Lesen von Objekten verwendet werden, die von ObjectOutputStream先前编写的.

es die InputStream-Abstraktklasse fortsetzt.

Stellen Sie sicher, dass Sie die Klasse ObjectInputStream lernen, bevor Sie sicher sind, dass SieObjectOutputStream-Klasse.

Arbeitsweise von ObjectInputStream

ObjectInputStream wird hauptsächlich zum Lesen von Daten verwendet, die von ObjectOutputStream geschrieben wurden.

Grundsätzlich wandelt ObjectOutputStream Java-Objekte in die entsprechenden Ströme um. Dies wird als Serialisierung bezeichnet. Diese umgewandelten Ströme können in Dateien gespeichert oder über das Netzwerk übertragen werden.

Jetzt, wenn Sie diese Objekte lesen müssen, verwenden Sie ObjectInputStream, der den Strom in den entsprechenden Objekt zurückwandelt. Dies wird als Deserialisierung bezeichnet.

Erstellen eines ObjectInputStream

Um einen Objekt-Eingabestrom zu erstellen, müssen wir zunächst das Paket java.io.ObjectInputStream importieren. Nach dem Importieren des Pakets können wir den Eingabestrom erstellen.

//Erstellen Sie eine Dateieingabestromverbindung mit der angegebenen Datei.
FileInputStream fileStream = new FileInputStream(String file);
//Erstellen Sie einen Objekt-Eingabestrom aus einem Datei-Eingabestrom
ObjectInputStream objStream = new ObjectInputStream(fileStream);

Im obigen Beispiel haben wir einen Objekt-Eingabestrom namens objStream erstellt, der mit dem Datei-Eingabestrom namens fileStream verbunden ist.

Jetzt kann objStream Objekte aus der Datei lesen.

Methoden der Klasse ObjectInputStream

Die Klasse ObjectInputStream bietet verschiedene Methodenimplementierungen, die in der Klasse InputStream existieren.

read() Methode

  • read() - Ein Byte von Daten aus dem Eingabestrom lesen

  • readBoolean() - Daten in Form von Booleschen Werten lesen

  • readChar() - Daten in Form von Zeichen lesen

  • readInt() - Daten in Form von Ganzzahlen lesen

  • readObject() - Objekte aus dem Eingabestrom lesen

Beispiel1:Java ObjectInputStream

Lassen Sie uns sehen, wie man mit der Klasse ObjectInputStream Objekte liest, die von der Klasse ObjectOutputStream erstellt wurden.

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 w3codebox";
        try {
            FileOutputStream file = new FileOutputStream("file.txt");
            ObjectOutputStream output = new ObjectOutputStream(file);
            //Verwenden Sie ObjectOutputStream, um in die Datei zu schreiben
            output.writeInt(data1);
            output.writeObject(data2);
            FileInputStream fileStream = new FileInputStream("file.txt");
            //Erstellen Sie einen Objekt-Eingabestrom
            ObjectInputStream objStream = new ObjectInputStream(fileStream);
            //Verwenden Sie die Methode readInt()
            System.out.println("Ganzzahlendaten: " + objStream.readInt());
            //Verwenden Sie die Methode readObject()
            System.out.println("Zeichenketten-Daten: " + objStream.readObject());
            output.close();
            objStream.close();
        }
        catch (Exception e) {
            e.getStackTrace();
        }
    }
}

Ausgaberesultat

Ganzzahlendaten: 5
Zeichenketten-Daten: This is w3codebox

Im obigen Beispiel haben wir die Methoden readInt() und readObject() verwendet, um Ganzzahlendaten und Objektdaten aus der Datei zu lesen.

Hier verwenden wir ObjectOutputStream, um Daten in die Datei zu schreiben. Danach verwenden wir ObjectInputStream, um Daten aus der Datei zu lesen.

Beispiel2:Java ObjectInputStream

Lassen Sie uns einen anderen tatsächlichen Fall betrachten,

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) {
        //Erstellen eines Objekts der Klasse Dog
        Dog dog = new Dog("Tyson", "Labrador");
        try {
            FileOutputStream file = new FileOutputStream("file.txt");
            //Erstellen eines ObjectOutputStream
            ObjectOutputStream output = new ObjectOutputStream(file);
            //Objekt in den Ausgabestrom schreiben
            output.writeObject(dog);
            FileInputStream fileStream = new FileInputStream("file.txt");
            //Erstellen eines ObjectInputStream
            ObjectInputStream input = new ObjectInputStream(fileStream);
            //Objekt lesen
            Dog newDog = (Dog) input.readObject();
            System.out.println("Name des Hundes: " + newDog.name);
            System.out.println("Hunderasse: " + newDog.breed);
            output.close();
            input.close();
        }
        catch (Exception e) {
            e.getStackTrace();
        }
    }
}

Ausgaberesultat

Name des Hundes: Tyson
Hunderasse: Labrador

In den obigen Beispielen haben wir erstellt

  •  ObjectOutputStream verwendet den benannten Ausgabestrom file der FileOutputStream

  •  ObjectInputStream verwendet den benannten Eingabestrom fileStream der FileInputStream

  • Das Objekt der Klasse Dog dog

Hier verwenden wir dann den ObjectOutputStream, um Objekte in die Datei zu schreiben. Und der ObjectInputStream liest Objekte aus der Datei.

Beachten Sie:Die Klasse Dog implementiert das Serializable Interface. Dies liegt daran, dass ObjectOutputStream nur serialisierbare Objekte in den Ausgabestrom schreibt.

Andere Methoden von ObjectInputStream

MethodeInhaltsbeschreibung
available()Geben Sie die Anzahl der verfügbaren Bytes im Eingabestrom zurück
mark()Markieren Sie den Standort der gelesenen Daten im Eingabestrom
reset()Setzen Sie den Steuerelement zurück zum Punkt im Eingabestrom, an dem der Markierungsindicator gesetzt wurde
skipBytes()Springen Sie im Eingabestrom über die angegebenen Bytes und werfen Sie sie weg
close()Schließen Sie den Objekt-Eingabestrom