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

Java ObjectOutputStream-Klasse

Java ObjectOutputStream-Klasse

In diesem Tutorial lernen wir Java ObjectOutputStream und seine Methoden anhand von Beispielen kennen.

Der ObjectOutputStream Klasse der java.io Paket kann verwendet werden, um Objekte zu schreiben, die von ObjectInputStream gelesen werden können .

Es erweitert die OutputStream abstrakte Klasse.


Funktion von ObjectOutputStream

Im Grunde die ObjectOutputStream codiert Java-Objekte unter Verwendung des Klassennamens und der Objektwerte. Und erzeugt daher entsprechende Streams. Dieser Vorgang wird als Serialisierung bezeichnet.

Diese konvertierten Streams können in Dateien gespeichert und zwischen Netzwerken übertragen werden.

Hinweis :Der ObjectOutputStream Klasse schreibt nur die Objekte, die den Serializable implementieren Schnittstelle. Das liegt daran, dass Objekte beim Schreiben in den Stream serialisiert werden müssen


Erstellen Sie einen ObjectOutputStream

Um einen Objektausgabestrom zu erstellen, müssen wir den java.io.ObjectOutputStream importieren Paket zuerst. Sobald wir das Paket importiert haben, können wir wie folgt einen Ausgabestream erstellen.

// Creates a FileOutputStream where objects from ObjectOutputStream are written
FileOutputStream fileStream = new FileOutputStream(String file);

// Creates the ObjectOutputStream
ObjectOutputStream objStream = new ObjectOutputStream(fileStream);

Im obigen Beispiel haben wir einen Objektausgabestrom namens objStream erstellt die mit dem Dateiausgabestrom namens fileStream verknüpft ist .


Methoden von ObjectOutputStream

Die ObjectOutputStream -Klasse stellt Implementierungen für verschiedene Methoden bereit, die in OutputStream vorhanden sind Klasse.

write()-Methode


Beispiel 1:Java ObjectOutputStream

Mal sehen, wie wir ObjectOutputStream verwenden können um Objekte in einer Datei zu speichern und ObjectInputStream um diese Objekte aus den Dateien zu 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 = "This is programiz";

        try {

            FileOutputStream file = new FileOutputStream("file.txt");

            // Creates an ObjectOutputStream
            ObjectOutputStream output = new ObjectOutputStream(file);

            // writes objects to output stream
            output.writeInt(data1);
            output.writeObject(data2);

            // Reads data using the ObjectInputStream
            FileInputStream fileStream = new FileInputStream("file.txt");
            ObjectInputStream objStream = new ObjectInputStream(fileStream);

            System.out.println("Integer data :" + objStream.readInt());
            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 Methode und readObject() Methode zum Lesen von Ganzzahldaten und Objektdaten aus den Dateien.

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 ObjectOutputStream

Nehmen wir ein weiteres Beispiel,

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 dog1 = new Dog("Tyson", "Labrador");

        try {
            FileOutputStream fileOut = new FileOutputStream("file.txt");

            // Creates an ObjectOutputStream
            ObjectOutputStream objOut = new ObjectOutputStream(fileOut);

            // Writes objects to the output stream
            objOut.writeObject(dog1);

            // Reads the object
            FileInputStream fileIn = new FileInputStream("file.txt");
            ObjectInputStream objIn = new ObjectInputStream(fileIn);

            // Reads the objects
            Dog newDog = (Dog) objIn.readObject();

            System.out.println("Dog Name: " + newDog.name);
            System.out.println("Dog Breed: " + newDog.breed);

            objOut.close();
            objIn.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 Objekte, die in den Ausgabestrom serialisiert werden können.


Andere Methoden von ObjectOutputStream

Methoden Beschreibungen
flush() löscht alle Daten aus dem Ausgabestrom
drain() legt alle gepufferten Daten in den Ausgabestrom
close() schließt den Ausgabestrom

Um mehr zu erfahren, besuchen Sie Java ObjectOutputStream (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-ArrayList-Klasse
  9. Java-Generika
  10. Java-Dateiklasse