Java readfields

Java readfields
"Para leer objetos que han sido escritos previamente por ObjectOutputStream, usamos la clase ObjectInputStream de Java.Paquete IO y el Java.IO.Paquete ObjectOutputStream que tiene la función ReadFields (). Los campos persistentes se leen de la transmisión y se ponen a disposición por nombre utilizando el Java.IO.ObjectInputStream.función readfields (). La función ReadFields () es una función no estática a la que solo se puede acceder a través del objeto de clase; Si intentamos obtener el método directamente por nombre de clase, encontraremos un error. Al leer los campos, la función ReadFields () puede plantear una excepción."
  1. Ioexception: Cuando se realiza, esta excepción se puede lanzar si hay un error de entrada o salida.
  2. ClassNotFoundException: Este error puede ocurrir si la clase para la cual no se encuentran los objetos serializados.
  3. NotactiveException: Este mensaje de error puede aparecer si la transmisión no está abierta y lista para leer objetos. A continuación, pasaremos por la sintaxis y el ejemplo del método readFields () de la clase ObjectInputStream ().

Sintaxis del método readfields () en Java en Ubuntu 20.04

La sintaxis de la función Java para la función ReadFields () es la siguiente:

ObjectInputStream público.Getfield readfields ();

El objeto GetFields verifica los campos a los que se puede acceder para esta clase utilizando ObjectStreamClass del objeto actual. Durante esta llamada específica al método ReadObject de la clase, el objeto getFields proporcionado por readfields es el único que es válido. Solo una vez que se ha invocado lectura de lectura, se pueden leer más datos directamente de la transmisión.

Método del parámetro de readfields ():

No hay parámetros que acepte.

Tipo de retorno del método Readfeilds ():

ObjectInputStream es el tipo de retorno del método. Cuando llame a Getfield, devolverá un objeto llamado Getfield que indica que los campos permanentes del objeto no están serializados.

Ejemplo 1: Uso del método Readfield () en Java en Ubuntu 20.04

La función readfields () de la java.IO.La clase ObjectInputStream se demuestra en el siguiente ejemplo.

Aquí, hemos incluido el paquete Java "Java.io "con la palabra clave" importar ". Luego, establecimos la clase "RF1" con el modificador "público". Hemos construido el método principal dentro de la clase "RF1" que también arroja la "excepción" porque la clase de "excepción" de Java también se define con el método principal si ocurrió. Dentro del cuerpo principal, tenemos la declaración de los objetos como "FOS" por el FileOutputStream, el "OBJ" por el objeto ObjectOutputStream, el objeto "FIS" por el FileInputStream y el objeto "OIS" por la clase "ObjectInputStream".

Los objetos "FIS" y "FOS" toman el archivo "archivo.txt "como entrada. El objeto "OBJ" y "OIS" se usa para mostrar la transmisión de estos archivos. Luego, utilizamos el método writeObject () con la instancia "obj", que se llama función readfields () dentro de él. WriteObject escribe los enteros de la instancia "obj". La transmisión estará enjuagada por el método FLUSH (), como lo hemos agregado después del método WriteObject. Después de esto, tenemos una instancia de "RF" de los Readfeilds que llamó al método ReadObject para leer el objeto "OIS" e imprimir los campos.

A continuación, tenemos una clase estática, "Readfields", que implementa una clase serializable, luego declara la cadena "mystr" y la establece con el valor de la cadena. Allí, hemos llamado al método "ReadObject", que define la instancia "s" para el flujo de entrada de objeto. El método readFields () luego lea los campos y devuélvalos con el acceso del método de retorno.

El compilador de Java, sin IOException, muestra los campos del método readfields ().

Ejemplo 2: Uso del método Readfeilds con la validación de cadenas en Java en Ubuntu 20.04

Como hemos visto en un ejemplo anterior, ese método readfields () devolvió el campo después de leerlo. Ahora, estamos realizando la misma operación pero con un escenario complejo. Vamos a validar la primera cadena y luego mostrar la segunda.

Hemos construido la clase "RF2", que tiene el método principal. Dentro de los soportes del método principal, hemos definido la cadena como "S1" y tenemos el valor con la representación de la cadena. Luego, usamos el bloque de captura de try. El bloque de try tiene la creación del archivo "archivo.txt "llamando a la clase" FileuputStream ". La instancia se define como "fileIn" para la entrada de la transmisión que se pasa en el objeto "FileOut".

Luego, llamamos a los métodos "WriteObject" y "Writeutf". El método WriteObject se utiliza para escribir el flujo de la operación "demo", y el método Writeutf () toma el "S1" para escribir la cadena en la salida como un flujo básico. Después de eso, leemos el objeto con el método ReadObject y mostramos la cadena. El método ReadFields se emplea para leer los campos del "S2". La declaración IF se solicita para registrar Validación. El bloque de captura trazará las excepciones de entrada y salida de las transmisiones.

A continuación, tenemos una clase de "demostración" para la serialización de la cadena y para la validación de objetos deserializados, y también hemos implementado la clase ObjectInputValidation. Aquí, hemos establecido el valor de cadena para la variable "S2". Tenemos un método "ReadObject" para esta clase que tiene el método ReadFields para leer campos y el método de registro de Validación. Luego, devuelva la cadena dentro del "S2" al método principal.

Compilar y ejecutar el guión antes mencionado de Java dará como resultado el siguiente resultado.

Ejemplo 3: Uso del método getFields () para obtener el campo de la clase en Java en Ubuntu 20.04

El campo público de esta clase, junto con sus miembros, se puede obtener utilizando la función getField () de la "Java.lang.Clase de clase ". La función devuelve objetos de campo que representan el campo solicitado de esta clase.

Nuestra clase "Getfield" se crea con el objeto "myobj" dentro de él. Luego, empleamos el método principal dentro de la clase. Allí, tenemos una variable de nombre de clase que invocó el método FORNAME (). El objeto vinculado a la clase será devuelto por este método. Después de eso, utilizamos el método getField () para obtener el campo de clase.

Después de compilar el código, obtuvimos el nombre del objeto de clase y el campo de la clase a continuación.

Conclusión

Para leer datos serializados para la transmisión de red, utilice los métodos readfields (). Los valores del campo Serializable se leen desde la transmisión utilizando el método ReadFields, que luego los hace accesibles a través de la clase Getfield. Un método de readobject de clase serializable es el único lugar desde el cual se puede llamar al método readfields. Además, hemos introducido otro método que es getfield () que devuelve el nombre de campo de la clase especificada.