Java ObjectInputStream .readFields ()
Syntax
ObjectInputStream.readFields() has the following syntax.
public ObjectInputStream.GetField readFields() throws IOException , ClassNotFoundException
Example
In the following code shows how to use ObjectInputStream.readFields() method.
/*from ww w .j a v a 2 s. co m*/
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.ObjectStreamField;
import java.io.Serializable;
public class Main implements Serializable {
public static void main(String[] args) throws Exception {
FileOutputStream out = new FileOutputStream("test.txt");
ObjectOutputStream oout = new ObjectOutputStream(out);
oout.writeObject(new Example());
oout.flush();
oout.close();
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(
"test.txt"));
Example a = (Example) ois.readObject();
System.out.println(a.isDefault);
System.out.println(a.string);
ois.close();
}
}
class Example implements Serializable {
String string = "Hello World!";
boolean isDefault;
private static final ObjectStreamField[] serialPersistentFields = { new ObjectStreamField(
"string", String.class) };
private void readObject(ObjectInputStream in) throws IOException,
ClassNotFoundException {
ObjectInputStream.GetField fields = in.readFields();
isDefault = fields.defaulted("string");
string = (String) fields.get("string", null);
}
private void writeObject(ObjectOutputStream out) throws IOException {
ObjectOutputStream.PutField fields = out.putFields();
fields.put("string", string);
out.writeFields();
}
}
The code above generates the following result.
Home »
Java Tutorial »
java.io »
Java Tutorial »
java.io »