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

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


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

erstellt

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

  1. Letztes Java-Schlüsselwort
  2. Java-Instanz des Operators
  3. Java-Vererbung
  4. Verschachtelte statische Java-Klasse
  5. Anonyme Java-Klasse
  6. Java-Singleton-Klasse
  7. Java-Reflexion
  8. Java ObjectOutputStream-Klasse
  9. Java-Generika
  10. Java-Dateiklasse