Java ObjectInputStream

Java Objectinputstream



„Auf Informationen, die über das Objekt eines ObjectOutputStream geschrieben werden, wird hauptsächlich über die ObjectInputStream-Klasse zugegriffen. Das Hauptziel der ObjectInputStream-Klasse wäre die Rekonstruktion der grundlegenden Daten und Entitäten, die durch die Verwendung der ObjectOutputStream-Klasse erzeugt werden. Durch die Verwendung eines SocketStream kann ObjectInputStream auch verwendet werden, um Objekte über verschiedene Hosts zu übertragen. Daher haben wir uns entschieden, eine hilfreiche Anleitung für unser Ubuntu 20.04-System zu schreiben, um das Objekt der Klasse objectinputstream abzustreifen, um Daten aus dem Dateieingabestrom zu lesen. Beginnen wir mit dem Öffnen einer Konsole.“

Beispiel 01

Beginnend mit dem ersten Beispiel unseres Artikels haben wir eine neue Java-Datei namens „test.java“ erstellt. Danach haben wir auch eine Textdatei im selben Ordner generiert.







Um Objekte des Eingabestroms in einem Java-Programm zu lesen, müssen wir den Ausgabestrom importieren. Wir haben also zu Beginn die Pakete „java.io.ObjectInputStream“ und „java.io.ObjectOutputStream“ importiert. Um die Daten in eine Datei einzufügen, müssen wir außerdem „java.io.FileInputStream“ und „java.io.FileInputStream“ importieren. Wir haben eine Klasse „Main“ erstellt, die eine einzelne main()-Funktion enthält.



Die Funktionsausführung beginnt mit der Deklaration einer Integer-Variablen „d“. Um das plötzliche Beenden des Programms aufgrund von Fehlern zu vermeiden, haben wir die try-catch-Anweisung von Java hinzugefügt. Der „Try“-Teil beginnt mit der Initialisierung eines Dateiausgabestream-Objekts „f“ über die FileOutputStream-Klasse. Diesem Objekt „f“ haben wir den Dateinamen „new.txt“ übergeben. Wir haben einen Objektausgabestream „o“ erstellt und das Dateiobjekt „f“ an die ObjectOutputStream-Klasse übergeben, um eine Datei zu einem Ausgabestream zu machen.



Gleich in der nächsten Zeile haben wir die Funktion writeInt() des Java-Ausgabestroms über das Ausgabestromobjekt „o“ aufgerufen, um ihm eine Integer-Variable „d“ zu übergeben, also in einer Datei zu speichern. In Zeile 12 haben wir den Dateieingabestrom „fs“ mithilfe der FileInputStream-Klasse von Java erstellt, indem wir ihr eine Datei „new.txt“ übergeben haben, d. h. bereits Daten darin enthalten. Dieses Dateieingabestromobjekt „fs“ wurde an das neu generierte Objekt „os“ der ObjectInputStream-Klasse übergeben, um das Lesen aus dem Dateistrom zu ermöglichen. Die println()-Funktion aus dem „System.out“-Paket von Java wurde umgestaltet, um die readInt()-Funktion über das Objekt Inputstream-Objekt „os“ aufzurufen, um die Daten aus der Datei new.txt anzuzeigen. Danach haben wir den Ausgabestrom und den Eingabestrom mit ihren jeweiligen Objekten „o“ und „os“ mit der Funktion „Schließen“ der Dateibehandlung in Java geschlossen. Dies ist ein notwendiger Schritt, um die Streams zu schließen, damit kein anderer Benutzer Daten aus einer Datei eingeben oder ausgeben kann. Innerhalb der catch()-Anweisung haben wir die getStackTrace()-Funktion verwendet, um einen Fehler zu erhalten und ihn über die Exception-Variable „e“ auf dem Bildschirm anzuzeigen. Dieses Programm ist zur Ausführung auf der Shell bereit.





Wir hatten gerade unsere Java-Codedatei vor ihrer Ausführung gespeichert und die Java-Schlüsselwortanweisung verwendet, um die Datei „test.java“ auszuführen. Es gibt nichts zurück. Auch das Anzeigen der Daten einer Textdatei „new.txt“ auf der Shell mit der Anweisung „cat“ zeigte einen Müllwert an. Dies liegt daran, dass der Java-Executor die meiste Zeit nicht in der Lage ist, den Integer-Wert aus der Datei zu lesen. Aber höchstwahrscheinlich wird es den genauen ganzzahligen Wert anzeigen.



Beim Überprüfen der Datei new.txt durch manuelles Öffnen haben wir festgestellt, dass ein Unicode-Format des Werts in der Datei angezeigt wurde.

Wenn Sie den Integer-Wert aus dem Dateistream nicht anzeigen können, können Sie die Funktion writeObject() im Java-Programm anstelle der Funktion writeInt() verwenden, um den Wert „d“ über das Objekt „o“ in den Dateistream zu schreiben. wie dargestellt. Außerdem müssen Sie die Funktion „readObject()“ anstelle der Funktion readInt() ablegen, um die Daten aus dem Dateieingabestrom anzuzeigen.

Das Aktualisieren dieses Codes würde den ganzzahligen Wert bei der Ausführung anzeigen.

Beispiel 02

Lassen Sie uns einen anderen Wert der Java-Programmierung haben, um den Objekteingabestrom für den Wert des Zeichenfolgentyps abzuwerfen. Daher haben wir diesen Beispielcode mit dem Import der gleichen FileInputStream-, FileOutputStream-, ObjectInputStream- und ObjectOutputStream-Klassen von Java aus dem „io“-Paket der Java-Bibliothek begonnen. Die Main-Klasse hat ihre main()-Funktion, um mit der Ausführung dieses Codes zu beginnen. Eine Zeichenfolgenvariable „d2“ wird mit einem langen Zeichenfolgenwert initialisiert.

Dieselbe Try-Catch-Anweisung wurde verworfen, um den Fehler zu vermeiden und diesen Java-Code reibungslos auszuführen. Das Objekt „f“ für den Dateiausgabestrom wurde über die FileOutputStream-Klasse mit „new.txt“ als Argument erstellt. Das Dateiausgabe-Stream-Objekt „f“ wurde an das Ausgabe-Stream-Objekt „o“ übergeben, das durch die Verwendung der ObjectOutputStream-Klasse erstellt wurde. Jetzt hat der Ausgabestrom „o“ die Funktion writeObject() aufgerufen, indem er ihr eine String-Variable „d“ übergeben hat, die in die Datei „new.txt“ geschrieben werden soll.

Erstellen Sie dann einen Dateieingabestream „fs“ mithilfe der FileInputStream-Klasse, indem Sie ihm einen Dateinamen „new.txt“ übergeben, d. h., um die Daten daraus zu lesen. Nun würde das ObjectInputStream-Klassenobjekt „os“ das Dateieingabestromobjekt „fs“ verwenden, um die Daten unter Verwendung der readObject()-Funktion von Java in der „println“-Ausführungsanweisung der „System.out“-Klasse zu lesen. Dann neigen wir dazu, die Eingabe- und Ausgabeströme zu schließen, indem wir die „Close“-Funktion aufrufen, und die catch-Anweisung wird verwendet, um zu ermitteln, ob Ausnahmen im try-Teil aufgetreten sind, und um das plötzliche Schließen dieser Programmausführung zu vermeiden.

Die Ausführung dieser Java-Codedatei und der Textdatei zeigten den Zeichenfolgenwert auf der Konsole an.

Fazit

Die Verwendung der ObjectInputStream-Klasse ist die einzige verfügbare Methode zum Lesen von Substanzen, die das Serializable- oder Externalizable-Protokoll verwenden. Zusammenfassend haben wir alle notwendigen Details hinzugefügt, um die Objectinputstream-Klasse von Java zum Lesen von Daten aus dem Dateiobjekt-Eingabestrom zu verwenden. Dafür haben wir hier zwei verschiedene Java-Code-Beispiele gecastet. Das erste Beispiel verwendet den Wert der Eingabevariablen vom Typ Integer, während die zweite Illustration den Wert der Zeichenfolgenvariablen verwirft, d. h. aus dem Eingabedateistrom liest.