The defaultReadObject() method of the ObjectInputStream class in Java is used to read the non-static and non-transient fields of the current class from this stream.
Syntax:
public void defaultReadObject()
Parameters: This method does not accept any parameter.
Return Value: This method returns the value that has been read.
Errors and Exceptions: The function throws three exceptions which is described below:
- ClassNotFoundException: The exception is thrown if the class of a serialized object could not be found.
- IOException: The exception is thrown if an I/O error has occurred.
- NotActiveException: The exception is thrown if the stream is not currently reading objects.
Below program illustrate the above method:
Program 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();        }    }} |
Output:
Program 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();        }    }} |
Output:
Reference:
https://docs.oracle.com/javase/10/docs/api/java/io/ObjectInputStream.html#defaultReadObject()

