File Java Tutorial

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
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 Data implements Serializable {
  private int value;
  public Data(int init) {
    value = init;
  }
  public boolean equals(Object obj) {
    if (obj instanceof Data && ((Data) obj).value == value) {
      return true;
    }
    return false;
  }
  public void setValue(int val) {
    value = val;
  }
  public int getValue() {
    return value;
  }
}
public class MainClass {
  public static void main(String[] args) {
    Data data = new Data(1);
    try {
      ObjectOutputStream objectOut = new ObjectOutputStream(new BufferedOutputStream(
          new FileOutputStream("C:/test.bin")));
      objectOut.writeObject(data);
      System.out.println("1st Object written has value: " + data.getValue());
      data.setValue(2);
      objectOut.writeObject(data);
      System.out.println("2nd Object written has value: " + data.getValue());
      data.setValue(3);
      objectOut.writeObject(data);
      System.out.println("3rd Object written has value: " + data.getValue());
      objectOut.close();
    } catch (IOException e) {
      e.printStackTrace(System.err);
    }
    try {
      ObjectInputStream objectIn = new ObjectInputStream(new BufferedInputStream(
          new FileInputStream("C:/test.bin")));
      Data data1 = (Data) objectIn.readObject();
      Data data2 = (Data) objectIn.readObject();
      Data data3 = (Data) objectIn.readObject();
      System.out.println(data1.equals(data2));
      System.out.println(data2.equals(data3));
      System.out.println(data1.getValue());
      System.out.println(data2.getValue());
      System.out.println(data3.getValue());
      objectIn.close();
    } catch (Exception e) {
      e.printStackTrace(System.err);
    }
  }
}
1st Object written has value: 1
2nd Object written has value: 2
3rd Object written has value: 3
true
1