Java ObjectInputStream

Java Objectinputstream



'Les informations écrites via l'objet d'un ObjectOutputStream sont principalement accessibles à l'aide de la classe ObjectInputStream. L'objectif principal de la classe ObjectInputStream serait de reconstruire les données de base et les entités produites en utilisant la classe ObjectOutputStream. En utilisant un SocketStream, ObjectInputStream peut également être utilisé pour transférer des objets entre différents hôtes. Par conséquent, nous avons décidé d'écrire un guide utile pour notre système Ubuntu 20.04 afin de supprimer l'objet de classe objectinputstream pour lire les données du flux d'entrée de fichier. Commençons par l'ouverture d'une console.

Exemple 01

À partir du premier exemple de notre article, nous avons créé un nouveau fichier java, 'test.java'. Après cela, nous avons également généré un fichier texte dans le même dossier.







Pour lire les objets du flux d'entrée dans un programme Java, nous devons importer le flux de sortie. Ainsi, nous avons importé les packages 'java.io.ObjectInputStream' et 'java.io.ObjectOutputStream' au début. Parallèlement à cela, pour insérer les données dans un fichier, nous devons importer le 'java.io.FileInputStream' et 'java.io.FileInputStream'. Nous avons créé une classe 'Main' contenant une seule fonction main().



L'exécution de la fonction commence à partir de la déclaration d'une variable entière 'd'. Pour éviter la sortie soudaine du programme en raison d'erreurs, nous avons ajouté l'instruction try-catch de java. La partie 'try' commence par l'initialisation d'un objet de flux de sortie de fichier 'f' via la classe FileOutputStream. Nous avons passé le nom de fichier « new.txt » à cet objet « f ». Nous avons créé un flux de sortie d'objet 'o' et passé l'objet fichier 'f' à la classe ObjectOutputStream pour faire d'un fichier un flux de sortie.



À la ligne suivante, nous avons appelé la fonction writeInt () du flux de sortie Java via l'objet de flux de sortie 'o' pour lui transmettre une variable entière 'd', c'est-à-dire pour l'enregistrer dans un fichier. À la ligne 12, nous avons créé le flux d'entrée de fichier 'fs' à l'aide de la classe FileInputStream de Java en lui transmettant un fichier 'new.txt', c'est-à-dire qu'il contient déjà des données. Cet objet de flux d'entrée de fichier 'fs' a été transmis à l'objet 'os' nouvellement généré de la classe ObjectInputStream pour permettre la lecture à partir du flux de fichier. La fonction println() du package 'System.out' de la java a été rejetée pour appeler la fonction readInt() via l'objet de flux d'entrée d'objet 'os' pour afficher les données du fichier new.txt. Après cela, nous avons fermé le flux de sortie et le flux d'entrée en utilisant leurs objets respectifs 'o' et 'os' en utilisant la fonction 'fermer' de la gestion des fichiers en Java. Il s'agit d'une étape nécessaire pour fermer les flux afin qu'aucun autre utilisateur ne puisse entrer ou sortir des données d'un fichier. Dans l'instruction catch(), nous avons utilisé la fonction getStackTrace() pour obtenir une erreur et l'afficher à l'écran via la variable d'exception 'e'. Ce programme est prêt à être exécuté sur le shell.





Nous venions de sauvegarder notre fichier de code java avant son exécution et avons utilisé l'instruction de mot-clé java pour exécuter le fichier 'test.java'. Il ne retourne rien en retour. De plus, l'affichage des données d'un fichier texte 'new.txt' sur le shell à l'aide de l'instruction 'cat' affichait une valeur parasite. En effet, la plupart du temps, l'exécuteur Java est incapable de lire la valeur entière du fichier. Mais très probablement, il affichera la valeur entière exacte.



En vérifiant le fichier new.txt en l'ouvrant manuellement, nous avons vu qu'un format Unicode de la valeur a été affiché dans le fichier.

Si vous ne parvenez pas à afficher la valeur entière du flux de fichier, vous pouvez utiliser la fonction writeObject() dans le programme java au lieu de la fonction writeInt() pour écrire la valeur 'd' dans le flux de fichier via l'objet 'o' tel qu'affiché. Parallèlement à cela, vous devez supprimer la fonction 'readObject ()' au lieu de la fonction readInt () pour afficher les données du flux d'entrée du fichier.

La mise à jour de ce code afficherait la valeur entière lors de l'exécution.

Exemple 02

Prenons une autre valeur de programmation Java pour supprimer le flux d'entrée d'objet pour la valeur de type chaîne. Ainsi, nous avons commencé cet exemple de code avec l'importation des mêmes classes FileInputStream, FileOutputStream, ObjectInputStream et ObjectOutputStream de java à partir du package 'io' de la bibliothèque java. La classe Main a sa fonction main() pour commencer à exécuter ce code. Une variable de chaîne 'd2' est initialisée avec une valeur de chaîne longue.

La même instruction try-catch a été rejetée pour éviter l'erreur et pour une exécution fluide de ce code java. L'objet 'f' pour le flux de sortie du fichier a été créé via la classe FileOutputStream en prenant 'new.txt' comme argument. L'objet de flux de sortie de fichier 'f' a été transmis à l'objet de flux de sortie 'o' qui a été créé à l'aide de la classe ObjectOutputStream. Maintenant, le flux de sortie 'o' a appelé la fonction writeObject() en lui passant une variable de chaîne 'd' à écrire dans le fichier 'new.txt'.

Ensuite, créez un flux d'entrée de fichier 'fs' à l'aide de la classe FileInputStream en lui transmettant un nom de fichier 'new.txt', c'est-à-dire pour en lire les données. Maintenant, l'objet de classe ObjectInputStream 'os' utiliserait l'objet de flux d'entrée de fichier 'fs' pour lire les données à l'aide de la fonction readObject() de java dans l'instruction d'exécution 'println' de la classe 'System.out'. Ensuite, nous avons tendance à fermer les flux d'entrée et de sortie en appelant la fonction 'close', et l'instruction catch est utilisée pour obtenir toutes les exceptions qui se sont produites dans la partie try et éviter la fermeture soudaine de l'exécution de ce programme.

L'exécution de ce fichier de code Java et du fichier texte affichait la valeur de chaîne sur la console.

Conclusion

L'utilisation de la classe ObjectInputStream est la seule méthode disponible pour lire les substances qui utilisent le protocole Serializable ou Externalizable. Pour résumer, nous avons inclus tous les détails nécessaires pour utiliser la classe objectinputstream de Java pour lire les données du flux d'entrée de l'objet fichier. Pour cela, nous avons coulé deux exemples de code Java différents ici. Le premier exemple utilise la valeur de la variable d'entrée de type entier, tandis que la deuxième illustration a rejeté la valeur de la variable de chaîne, c'est-à-dire lue à partir du flux de fichier d'entrée.