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()