Java Readfields

Java Readfields
„Um Objekte zu lesen, die zuvor von ObjectOutputStream geschrieben wurden, verwenden wir die ObjectInputStream -Klasse der Java.IO -Paket und Java.io.ObjektOutputStream -Paket mit der Funktion readFields () hat. Die anhaltenden Felder werden aus dem Stream gelesen und mit dem Namen mit dem Java zur Verfügung gestellt.io.ObjectInputStream.ReadFields () Funktionen. Die Funktion readFields () ist eine nicht statische Funktion, auf die nur über das Klassenobjekt zugegriffen werden kann. Wenn wir versuchen, die Methode direkt nach Klassennamen zu erhalten, werden wir auf einen Fehler stoßen. Beim Lesen von Feldern kann die Funktion readFields () eine Ausnahme aussprechen.”
  1. IoException: Bei der Ausführung kann diese Ausnahme ausgeworfen werden, wenn ein Eingangs- oder Ausgangsfehler vorliegt.
  2. ClassNotfoundException: Dieser Fehler kann auftreten, wenn die Klasse, für die die Objekte serialisiert wurden.
  3. NotActiveException: Diese Fehlermeldung kann angezeigt werden, wenn der Stream nicht geöffnet und bereit ist, Objekte zu lesen. Als Nächst.

Syntax der Readfields () -Methode in Java in Ubuntu 20.04

Die Syntax der Java unterstützt die Funktion ReadFields () lautet wie folgt:

Öffentliches objektinputstream.Getfield ReadFields ();

Das Objekt von GETFields überprüft die Felder, auf die für diese Klasse mithilfe der ObjectStreamClass des aktuellen Objekts zugegriffen werden kann. Während dieses spezifischen Aufrufs der ReadObject -Methode der Klasse ist das von ReadFields bereitgestellte GetFields -Objekt die einzige, die gültig ist. Nur sobald Readfields aufgerufen wurde, können mehr Daten direkt aus dem Stream gelesen werden.

Parameter der Readfields () -Methode:

Es gibt keine Parameter, die es akzeptiert.

Rückgabeart der Readfeilds () -Methode:

ObjectInputStream ist der Rückgabetyp der Methode. Wenn Sie Getfield anrufen, wird ein Objekt namens Getfield zurückgegeben, das angibt, dass die permanenten Felder des Objekts nicht serialisiert sind.

Beispiel 1: Verwenden der Methode ReadField () in Java in Ubuntu 20.04

Die ReadFields () -Funktion der Java.io.ObjectInputStream -Klasse wird im folgenden Beispiel demonstriert.

Hier haben wir das Java -Paket „Java.IO "mit dem Schlüsselwort" Import ". Dann haben wir die Klasse „RF1“ mit dem „öffentlichen“ Modifikator eingerichtet. Wir haben die Hauptmethode in der Klasse „RF1“ erstellt, die auch die "Ausnahme" auswirft, da die Java -Ausnahmeklasse auch mit der Hauptmethode definiert ist, wenn sie aufgetreten ist. In der Hauptstelle haben wir die Deklaration der Objekte als "fos" durch den FileOutputStream, die "obj" durch den ObjectOutputStream, "FIS" -Objekt durch den FileInputStream und das "OIS" -Objekt der Klasse "ObjectInputStream".

Die Objekte "FIS" und "FOS" nehmen die Datei "Datei" vor.txt ”als Eingabe. Das Objekt "obj" und "ois" wird verwendet, um den Stream dieser Dateien anzuzeigen. Anschließend verwenden wir die WriteObject () -Methode mit der Instanz „OBJ“, die als ReadFields () -Funktion in ihr bezeichnet wird. Das WriteObject schreibt die Ganzzahlen der Instanz "obj". Der Stream wird von der Flush () -Methode gespült, wie wir ihn nach der WriteObject -Methode hinzugefügt haben. Danach haben wir eine Instanz „RF“ der Readfeilds, die die ReadObject -Methode bezeichnete, um das Objekt „OIS“ zu lesen und die Felder zu drucken.

Als Nächst. Dort haben wir die Methode "ReadObject" bezeichnet, die die Instanz "S" für den Objekteingabebereich definiert. Die ReadFields () -Methode lesen dann die Felder und geben sie mit dem Zugriff der Rückgabemethode zurück.

Der Java -Compiler ohne IOException zeigt die Felder aus der ReadFields () -Methode an.

Beispiel 2: Verwenden der Readfeilds -Methode mit der Validierung von Zeichenfolgen in Java in Ubuntu 20.04

Wie wir in einem früheren Beispiel gesehen haben, hat diese ReadFields () -Methode das Feld nach dem Lesen zurückgegeben. Jetzt führen wir dieselbe Operation durch, jedoch mit einem komplexen Szenario. Wir werden die erste Zeichenfolge validieren und dann die zweite anzeigen.

Wir haben die Klasse „RF2“ konstruiert, die die Hauptmethode hat. Innerhalb der Klammern der Hauptmethode haben wir die Zeichenfolge als „S1“ definiert und haben den Wert mit der String -Darstellung. Dann haben wir den Try-Catch-Block verwendet. Der Try -Block erstellt die Datei "Datei" -Datei ".TXT ”, indem Sie die Klasse" FileOuputStream "aufrufen. Die Instanz ist für die Eingabe des Streams, der im Objekt "Fileout" übergeben wird, als "Dateiin" definiert.

Dann nannten wir die Methoden "writeObject" und "writeutf". Die WriteObject -Methode wird verwendet, um den Stream aus dem Vorgang „Demo“ zu schreiben, und die Writeutf () -Methode nimmt die „S1“ zum Schreiben der Zeichenfolge in die Ausgabe als Basisstrom. Danach lesen wir das Objekt mit der ReadObject -Methode und zeigten die Zeichenfolge an. Die Readfields -Methode wird verwendet, um die Felder des „S2“ zu lesen. Die IF -Erklärung ist für die RegisterValidation aufgerufen. Der Catch -Block verfolgt die Eingangs- und Ausgangsausnahmen der Streams verfolgt.

Als Nächst. Hier haben wir den Stringwert für die Variable "S2" festgelegt. Wir haben eine Methode "ReadObject" für diese Klasse, die die Readfields -Methode zum Lesen von Feldern und die RegisterValidation -Methode hat. Geben Sie dann die Zeichenfolge im „S2“ zur Hauptmethode zurück.

Das Kompilieren und Ausführen des oben genannten Skripts von Java führt zu dem folgenden Ergebnis.

Beispiel 3: Verwenden der Methode getFields (), um das Feld der Klasse in Java in Ubuntu 20 zu erhalten.04

Das öffentliche Bereich dieser Klasse kann zusammen mit seinen Mitgliedern unter Verwendung der Funktion von Getfield () des „Java“ erhalten werden.Lang.Klasse ”Klasse. Die Funktion gibt Feldobjekte zurück, die das angeforderte Feld dieser Klasse darstellen.

Unsere Klasse „Getfield“ wird mit dem Objekt „Myobj“ erstellt. Dann verwendeten wir die Hauptmethode innerhalb der Klasse. Dort haben wir eine Klassenname -Variable, die die Methode forname () aufgerufen hat. Das mit der Klasse verbundene Objekt wird nach dieser Methode zurückgegeben. Danach haben wir die Methode von Getfield () verwendet, um das Klassenfeld zu erhalten.

Nachdem wir den Code kompiliert hatten, haben wir den Klassenobjektnamen und das Feld der folgenden Klasse erhalten.

Abschluss

Verwenden Sie die ReadFields () -Methoden, um serialisierte Daten für die Netzwerkübertragung zu lesen. Die Werte des serialisierbaren Feldes werden aus dem Stream unter Verwendung der Readfields -Methode gelesen, wodurch sie dann über die Getfield -Klasse zugänglich sind. Eine serialisierbare Klassen -ReadObject -Methode ist der einzige Ort, von dem die Readfields -Methode aufgerufen werden kann. Darüber hinaus haben wir eine andere Methode eingeführt, die Getfield () ist, die den Feldnamen der angegebenen Klasse zurückgibt.