Mega Code Archive

 
Categories / Java / File Input Output
 

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