Override writeObject(ObjectOutputStream oos) and readObject(ObjectInputStream ois)
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
class Employee implements Serializable {
private String name;
private double salary;
Employee(String name, double salary) {
this.name = name;
this.salary = salary;
}
String getName() {
return name;
}
double getSalary() {
return salary;
}
private void writeObject(ObjectOutputStream oos) throws IOException {
oos.defaultWriteObject();
System.out.println("Serializing Employee object\n");
}
private void readObject(ObjectInputStream ois) throws Exception {
ois.defaultReadObject();
salary += 100;
System.out.println("Deserializing Employee object");
}
}
class Main {
public static void main(String[] args) throws Exception {
Employee e1 = new Employee("A", 45000.0);
System.out.println(e1.getName() + " " + e1.getSalary());
FileOutputStream fos = new FileOutputStream("employee.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(e1);
FileInputStream fis = new FileInputStream("employee.ser");
ObjectInputStream ois = new ObjectInputStream(fis);
Employee e2 = (Employee) ois.readObject();
System.out.println(e2.getName() + " " + e2.getSalary());
}
}
Related examples in the same category