Método ObjectInputStream defaultReadObject() en Java con ejemplos

El método defaultReadObject() de la clase ObjectInputStream en Java se usa para leer los campos no estáticos y no transitorios de la clase actual de esta secuencia.

Sintaxis:

public void defaultReadObject()

Parámetros: Este método no acepta ningún parámetro.

Valor devuelto: este método devuelve el valor que se ha leído.

Errores y excepciones: la función arroja tres excepciones que se describen a continuación:

  • ClassNotFoundException: la excepción se lanza si no se pudo encontrar la clase de un objeto serializado.
  • IOException: la excepción se lanza si se produce un error de E/S.
  • NotActiveException: la excepción se lanza si la secuencia no está leyendo objetos actualmente.

El siguiente programa ilustra el método anterior:

Programa 1:

Java

// Java program to illustrate
// the above method
  
import java.io.*;
  
public class GFG {
    public static void main(String[] args)
    {
        try {
            // create a new file
            // with an ObjectOutputStream
            FileOutputStream out
                = new FileOutputStream("Shubham.txt");
            ObjectOutputStream out1
                = new ObjectOutputStream(out);
  
            // write
            out1.writeObject(new solve());
  
            // Flushes the stream
            out1.flush();
  
            // create an ObjectInputStream
            // for the file
            ObjectInputStream example
                = new ObjectInputStream(
                    new FileInputStream("Shubham.txt"));
  
            // Read from the stream
            solve ans = (solve)example.readObject();
            System.out.println(ans.str);
        }
  
        catch (Exception ex) {
            ex.printStackTrace();
        }
    }
  
    static class solve implements Serializable {
        String str = "Geeksforgeeks";
  
        private void readObject(ObjectInputStream res)
            throws IOException,
                   ClassNotFoundException
        {
  
            // By using defaultReadObject() method is
            // to read non-static fields of the present
            // class from the ObjectInputStream
            res.defaultReadObject();
        }
    }
}

Producción:

Programa 2:

Java

// Java program to illustrate
// the above method
  
import java.io.*;
  
public class GFG {
    public static void main(String[] args)
    {
        try {
            // create a new file
            // with an ObjectOutputStream
            FileOutputStream out
                = new FileOutputStream("Shubham.txt");
            ObjectOutputStream out1
                = new ObjectOutputStream(out);
  
            // write
            out1.writeObject(new solve());
  
            // Flushes the stream
            out1.flush();
  
            // create an ObjectInputStream
            // for the file
            ObjectInputStream example
                = new ObjectInputStream(
                    new FileInputStream("Shubham.txt"));
  
            // Read from the stream
            solve ans = (solve)example.readObject();
            // System.out.println(ans.str);
            System.out.println(ans.in);
        }
  
        catch (Exception ex) {
            ex.printStackTrace();
        }
    }
  
    static class solve implements Serializable {
  
        // String str = "Geeksforgeeks";
        Integer in = new Integer(112414);
  
        private void readObject(ObjectInputStream res)
            throws IOException,
                   ClassNotFoundException
        {
            // By using defaultReadObject() method is
            // to read non-static fields of the present
            // class from the ObjectInputStream
            res.defaultReadObject();
        }
    }
}

Producción:

Referencia:

https://docs.oracle.com/javase/10/docs/api/java/io/ObjectInputStream.html#defaultReadObject()

Publicación traducida automáticamente

Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *