Champs de lecture java

Champs de lecture java
«Pour lire des objets qui ont déjà été écrits par ObjectOutputStream, nous utilisons la classe ObjectInputStream du Java.Package IO et le java.Io.Package objectOutStream qui a la fonction readFields (). Les champs persistants sont lus à partir du flux et mis à disposition par nom à l'aide du java.Io.ObjectInputStream.Fonction ReadFields (). La fonction readFields () est une fonction non statique qui ne peut être accessible que via l'objet de classe; Si nous essayons d'obtenir la méthode directement par nom de classe, nous rencontrerons une erreur. Lorsque vous lisez les champs, la fonction de lecture () peut soulever une exception."
  1. IOException: Lors de la performance, cette exception peut être lancée s'il existe une erreur d'entrée ou de sortie.
  2. ClassNotFoundException: Cette erreur peut se produire si la classe pour laquelle les objets ont été sérialisés ne sont pas trouvés.
  3. NotactiveException: Ce message d'erreur peut apparaître si le flux n'est pas ouvert et prêt à lire des objets. Ensuite, nous passerons par la syntaxe et l'exemple de la méthode ReadFields () de la classe ObjectInputStream.

Syntaxe de la méthode de lecture () en java dans Ubuntu 20.04

La syntaxe des supports Java pour la fonction readFields () est la suivante:

ObjectInputStream public.Getfield readFields ();

L'objet GetFields vérifie les champs accessibles pour cette classe à l'aide de l'objetStreamClass de l'objet actuel. Au cours de cet appel spécifique à la méthode ReadObject de la classe, l'objet Getfields fourni par ReadFields est le seul à être valide. Seule une fois que les champs de lecture ont été invoqués que plus de données peuvent être lues directement à partir du flux.

Paramètre de la méthode de readFields ():

Il n'y a pas de paramètres qu'il accepte.

Retour Type de Méthode ReadFeilds ():

ObjectInputStream est le type de retour de la méthode. Lorsque vous appelez Getfield, il renverra un objet appelé Getfield qui indique que les champs permanents de l'objet ne sont pas sérialisés.

Exemple 1: Utilisation de la méthode ReadField () en Java dans Ubuntu 20.04

La fonction de lecture () du java.Io.La classe objectInputStream est démontrée dans l'exemple ci-dessous.

Ici, nous avons inclus le package Java «Java.IO "avec le mot-clé" Import ". Ensuite, nous avons établi la classe «RF1» avec le modificateur «public». Nous avons construit la méthode principale à l'intérieur de la classe «RF1» qui lance également «l'exception» car la classe «exception» java est également définie avec la méthode principale si elle s'est produite. À l'intérieur du corps principal, nous avons la déclaration des objets en tant que «FOS» par le FileOutputStream, l'objet «OBJ» par l'objet objectOutStream, «FIS» par le FileInputStream et l'objet «OIS» par l'objet «ObjectInputStream» de classe «ObjectInputStream».

Les objets «FIS» et «FOS» prennent le fichier «Fichier.txt ”comme entrée. L'objet «OBJ» et «OIS» est utilisé pour afficher le flux de ces fichiers. Ensuite, nous utilisons la méthode writeObject () avec l'instance «obj», qui est appelée la fonction readFields () à l'intérieur. Le WriteObject écrit les entiers de l'instance «OBJ». Le flux sera rincé par la méthode Flush (), car nous l'avons ajouté après la méthode WriteObject. Après cela, nous avons une instance «RF» des ReadFeilds qui a appelé la méthode ReadObject pour lire l'objet «OIS» et imprimer les champs.

Ensuite, nous avons une classe statique, «ReadFields», qui implémente une classe sérialisable, puis déclare la chaîne «mystr» et la définit avec la valeur de la chaîne. Là, nous avons appelé la méthode «readObject», qui définit l'instance «S» pour le flux d'entrée d'objet. La méthode ReadFields () a ensuite lu les champs et les retourner avec l'accès de la méthode de retour.

Le compilateur Java, sans aucune IOException, affiche les champs de la méthode readFields ().

Exemple 2: Utilisation de la méthode ReadFeilds avec la validation des chaînes en Java dans Ubuntu 20.04

Comme nous l'avons vu dans un exemple précédent, cette méthode ReadFields () a renvoyé le champ après l'avoir lu. Maintenant, nous effectuons la même opération mais avec un scénario complexe. Nous allons valider la première chaîne, puis afficher le second.

Nous avons construit la classe «RF2», qui a la méthode principale. Dans les supports de la méthode principale, nous avons défini la chaîne comme «S1» et avons la valeur avec la représentation de la chaîne. Ensuite, nous avons utilisé le bloc d'essai. Le bloc d'essai a la création d'un fichier «fichier.txt "en appelant la classe" fileouputStream ". L'instance est définie comme «Fichier» pour l'entrée du flux qui est passé dans l'objet «Fichier».

Ensuite, nous avons appelé les méthodes «WriteObject» et «WriteUtf». La méthode writeObject est utilisée pour écrire le flux à partir de l'opération «Demo», et la méthode writeUtf () prend le «S1» pour écrire la chaîne dans la sortie en tant que flux de base. Après cela, nous avons lu l'objet avec la méthode readObject et affiché la chaîne. La méthode des champs de lecture est utilisée pour lire les champs du «S2». L'instruction IF est appelée pour RegisterValidation. Le bloc de capture tracera les exceptions d'entrée et de sortie des flux.

Ensuite, nous avons une classe de «démo» pour la sérialisation de la chaîne et pour la validation des objets désérialisés, et nous avons également implémenté la classe d'objetInputValidation. Ici, nous avons défini la valeur de chaîne pour la variable «S2». Nous avons une méthode «readObject» pour cette classe qui a la méthode de lecture pour lire les champs et la méthode RegisterValidation. Ensuite, retournez la chaîne à l'intérieur du «S2» sur la méthode principale.

La compilation et l'exécution du script susmentionné de Java entraîneront le résultat suivant.

Exemple 3: Utilisation de la méthode getFields () pour obtenir le champ de la classe en Java dans Ubuntu 20.04

Le domaine public de cette classe, ainsi que ses membres, peuvent être obtenus en utilisant la fonction getfield () du «Java.égouter.Classe de classe ". La fonction renvoie des objets de champ qui représentent le champ demandé de cette classe.

Notre classe «Getfield» est créée avec l'objet «myobj» à l'intérieur. Ensuite, nous avons utilisé la méthode principale à l'intérieur de la classe. Là, nous avons une variable de nom de classe qui a invoqué la méthode forname (). L'objet lié à la classe sera retourné par cette méthode. Après cela, nous avons utilisé la méthode getfield () pour obtenir le champ de classe.

Après avoir compilé le code, nous avons obtenu le nom de l'objet de classe et le champ de la classe ci-dessous.

Conclusion

Pour lire des données sérialisées pour la transmission du réseau, utilisez les méthodes de lecture des champs (). Les valeurs du champ sérialisable sont lues à partir du flux à l'aide de la méthode de lecture, ce qui les rend ensuite accessibles via la classe GetField. Une méthode de la classe Serializable ReadObject est le seul endroit à partir de laquelle la méthode de lecture peut être appelée. De plus, nous avons introduit une autre méthode qui est getfield () qui renvoie le nom de champ de la classe spécifiée.