Java ObjectInputStream

Java Objectinputstream



“La información escrita a través del objeto de un ObjectOutputStream se accede principalmente mediante la clase ObjectInputStream. El objetivo principal de la clase ObjectInputStream sería reconstruir los datos básicos y las entidades que se producen al emplear la clase ObjectOutputStream. Al hacer uso de un SocketStream, ObjectInputStream también se puede emplear para transferir objetos a través de diferentes hosts. Por lo tanto, hemos decidido escribir una guía útil para que nuestro sistema Ubuntu 20.04 elimine el objeto de clase objectinputstream para leer datos del flujo de entrada del archivo. Comencemos con la apertura de una consola”.

Ejemplo 01

Comenzando con el primer ejemplo de nuestro artículo, hemos estado creando un nuevo archivo java, 'test.java'. Después de eso, también generamos un archivo de texto en la misma carpeta.







Para leer objetos del flujo de entrada en un programa java, necesitamos importar el flujo de salida. Por lo tanto, hemos estado importando los paquetes 'java.io.ObjectInputStream' y 'java.io.ObjectOutputStream' al principio. Junto con eso, para insertar los datos en un archivo, necesitamos importar 'java.io.FileInputStream' y 'java.io.FileInputStream'. Hemos creado una clase 'Principal' que contiene una sola función principal().



La ejecución de la función comienza con la declaración de una variable entera “d”. Para evitar la salida repentina del programa debido a errores, agregamos la instrucción try-catch de java. La parte de 'probar' comienza con la inicialización de un objeto de flujo de salida de archivo 'f' a través de la clase FileOutputStream. Hemos pasado el nombre de archivo 'nuevo.txt' a este objeto 'f'. Hemos creado un flujo de salida de objeto 'o' y pasamos el objeto de archivo 'f' a la clase ObjectOutputStream para convertir un archivo en un flujo de salida.



En la siguiente línea, llamamos a la función writeInt() del flujo de salida de Java a través del objeto de flujo de salida 'o' para pasarle una variable entera 'd', es decir, para guardarlo en un archivo. En la línea 12, hemos creado el flujo de entrada de archivos 'fs' usando la clase FileInputStream de Java pasándole un archivo 'nuevo.txt', es decir, ya tiene datos. Este objeto de flujo de entrada de archivos 'fs' se ha pasado al objeto 'os' recién generado de la clase ObjectInputStream para permitir la lectura desde el flujo de archivos. La función println() del paquete 'System.out' de Java se ha descartado para llamar a la función readInt() a través del objeto de flujo de entrada del objeto 'os' para mostrar los datos del archivo new.txt. Después de eso, hemos estado cerrando el flujo de salida y el flujo de entrada usando sus respectivos objetos 'o' y 'os' usando la función 'cerrar' del manejo de archivos en Java. Este es un paso necesario para cerrar las secuencias de modo que ningún otro usuario pueda ingresar o generar datos de un archivo. Dentro de la declaración catch(), hemos estado usando la función getStackTrace() para obtener un error y mostrarlo en la pantalla a través de la variable de excepción 'e'. Este programa está listo para ejecutarse en el shell.





Acabábamos de guardar nuestro archivo de código java antes de su ejecución y usamos la instrucción de palabra clave java para ejecutar el archivo 'test.java'. No devuelve nada a cambio. Además, mostrar los datos de un archivo de texto 'new.txt' en el shell usando la instrucción 'cat' mostraba un valor basura. Esto se debe a que, la mayoría de las veces, el ejecutor de Java no puede leer el valor entero del archivo. Pero lo más probable es que muestre el valor entero exacto.



Al comprobar el archivo new.txt abriéndolo manualmente, hemos visto que en el archivo se ha mostrado un formato Unicode del valor.

Si no puede mostrar el valor entero del flujo de archivos, puede usar la función writeObject() en el programa Java en lugar de la función writeInt() para escribir el valor 'd' en el flujo de archivos a través del objeto 'o'. como se muestra. Junto con eso, debe descartar la función 'readObject ()' en lugar de la función readInt () para mostrar los datos del flujo de entrada del archivo.

Actualizar este código mostraría el valor entero en la ejecución.

Ejemplo 02

Tengamos otro valor de la programación Java para descartar el flujo de entrada del objeto para el valor del tipo de cadena. Por lo tanto, hemos comenzado este código de ejemplo con la importación de las mismas clases de Java FileInputStream, FileOutputStream, ObjectInputStream y ObjectOutputStream del paquete 'io' de la biblioteca Java. La clase Main tiene su función main() para comenzar a ejecutar este código. Una variable de cadena 'd2' se inicializa con un valor de cadena largo.

La misma sentencia try-catch se ha descartado para evitar el error y para una ejecución fluida de este código Java. El objeto 'f' para el flujo de salida del archivo se ha creado a través de la clase FileOutputStream tomando 'nuevo.txt' como argumento. El objeto de flujo de salida del archivo 'f' se pasó al objeto de flujo de salida 'o' que se creó mediante el uso de la clase ObjectOutputStream. Ahora, el flujo de salida 'o' ha estado llamando a la función writeObject() pasándole una variable de cadena 'd' para que se escriba en el archivo 'new.txt'.

Luego, creó un flujo de entrada de archivos 'fs' usando la clase FileInputStream pasándole un nombre de archivo 'nuevo.txt', es decir, para leer los datos de él. Ahora, el objeto de clase ObjectInputStream 'os' estaría usando el objeto de flujo de entrada de archivo 'fs' para leer los datos usando la función readObject() de java en la instrucción de ejecución 'println' de la clase 'System.out'. Luego, tendemos a cerrar los flujos de entrada y salida llamando a la función 'cerrar', y la instrucción catch se utiliza para obtener cualquier excepción que haya ocurrido en la parte de prueba y evitar el cierre repentino de la ejecución de este programa.

La ejecución de este archivo de código Java y el archivo de texto mostró el valor de la cadena en la consola.

Conclusión

El uso de la clase ObjectInputStream es el único método disponible para leer sustancias que usan el protocolo Serializable o Externalizable. En resumen, hemos incluido todos los detalles necesarios para utilizar la clase objectinputstream de Java para leer datos del flujo de entrada del objeto de archivo. Para esto, hemos estado lanzando dos ejemplos de código Java diferentes aquí. El primer ejemplo utiliza el valor de la variable de entrada de tipo entero, mientras que la segunda ilustración ha descartado el valor de la variable de cadena, es decir, leído del flujo del archivo de entrada.