Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java ObjectInputStream meistern: Umfassender Leitfaden

Java ObjectInputStream Klasse

Erkunden Sie, wie Sie serialisierte Objekte in Java mit ObjectInputStream lesen, komplett mit Schritt-für-Schritt-Beispielen und praktischen Tipps.

Die ObjectInputStream Klasse im java.io Paket ermöglicht es Ihnen, Objekte zu deserialisieren, die zuvor von ObjectOutputStream geschrieben wurden. Sie erweitert die abstrakte InputStream Klasse.

Java ObjectInputStream meistern: Umfassender Leitfaden

Bevor Sie in ObjectInputStream eintauchen, stellen Sie sicher, dass Sie mit der ObjectOutputStream Klasse vertraut sind, da diese den Serialisierungsprozess handhabt.

Wie ObjectInputStream funktioniert

Serialisierung transformiert Java-Objekte in einen Byte-Stream, der gespeichert oder übertragen werden kann. Deserialisierung – der umgekehrte Prozess – wird von ObjectInputStream gehandhabt, der den Byte-Stream liest und die ursprünglichen Objekte rekonstruiert.

ObjectInputStream erstellen

Um einen ObjectInputStream zu erstellen, importieren Sie zuerst die Klasse und verknüpfen Sie sie dann mit einer Quelle, typischerweise einem FileInputStream:

// Mit Datei verknüpfen
FileInputStream fileStream = new FileInputStream("beispiel.dat");
// In ObjectInputStream wrappen
ObjectInputStream objStream = new ObjectInputStream(fileStream);

Einmal instanziiert, kann objStream beliebige serialisierte Objekte aus der Datei lesen.

Wichtige Methoden von ObjectInputStream

Nachfolgend sind die am häufigsten verwendeten Methoden aufgeführt:

Beispiel 1: Grundlegende Deserialisierung

Unten ist ein minimales Beispiel, das einen Integer und einen String in eine Datei schreibt und sie dann zurückliest.

import java.io.*;

public class Main {
    public static void main(String[] args) {
        int data1 = 5;
        String data2 = "This is programiz";
        try {
            // Daten schreiben
            FileOutputStream fos = new FileOutputStream("file.txt");
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeInt(data1);
            oos.writeObject(data2);

            // Daten lesen
            FileInputStream fis = new FileInputStream("file.txt");
            ObjectInputStream ois = new ObjectInputStream(fis);
            System.out.println("Integer data :" + ois.readInt());
            System.out.println("String data :" + ois.readObject());
            oos.close();
            ois.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Ausgabe

Integer data :5
String data :This is programiz

Beispiel 2: Deserialisierung eines benutzerdefinierten Objekts

Serialisieren und deserialisieren Sie ein einfaches Dog Objekt. Denken Sie daran, die Klasse muss Serializable implementieren, damit dies funktioniert.

import java.io.*;

class Dog implements Serializable {
    String name;
    String breed;
    Dog(String name, String breed) {
        this.name = name;
        this.breed = breed;
    }
}

public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog("Tyson", "Labrador");
        try {
            // Serialisieren
            FileOutputStream fos = new FileOutputStream("file.txt");
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(dog);

            // Deserialisieren
            FileInputStream fis = new FileInputStream("file.txt");
            ObjectInputStream ois = new ObjectInputStream(fis);
            Dog newDog = (Dog) ois.readObject();
            System.out.println("Dog Name: " + newDog.name);
            System.out.println("Dog Breed: " + newDog.breed);
            oos.close();
            ois.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Ausgabe

Dog Name: Tyson
Dog Breed: Labrador

Wichtige Erkenntnisse:

Weitere ObjectInputStream Methoden

MethodeBeschreibung
available()Gibt die Anzahl der Bytes zurück, die ohne Blockieren gelesen werden können.
mark()Markiert die aktuelle Position im Stream.
reset()Setzt den Stream auf die letzte Markierung zurück.
skipBytes(int n)Überspringt n Bytes.
close()Schließt den Stream und gibt Ressourcen frei.

Für tiefere Einblicke besuchen Sie die offizielle Java-Dokumentation.

Java

  1. Javas final-Schlüsselwort verstehen: Variablen, Methoden und Klassen
  2. Java instanceof-Operator: Ein umfassender Leitfaden
  3. Java-Vererbung meistern: Konzepte, Typen und praktische Beispiele
  4. Java statische verschachtelte Klassen verstehen: Nutzung, Unterschiede und Beispiele
  5. Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
  6. Java Singleton-Pattern erklärt: Sichere Implementierung und Verwendung
  7. Java Reflection meistern: Klassen, Methoden und Felder zur Laufzeit inspizieren
  8. Java ObjectOutputStream meistern: Serialisierung, Methoden und praktische Beispiele
  9. Java Generics meistern – Wiederverwendbaren, typsicheren Code erstellen
  10. Java-Dateioperationen mit java.io meistern – Erstellen, Lesen, Schreiben & Löschen