1  import java.io.File;
  2  import java.io.IOException;
  3  import java.io.FileInputStream;
  4  import java.io.FileOutputStream;
  5  import java.io.ObjectInputStream;
  6  import java.io.ObjectOutputStream;
  7  
  8  /**
  9     This program demonstrates serialization of a Bank object.
 10     If a file with serialized data exists, then it is loaded. 
 11     Otherwise the program starts with a new bank.
 12     Bank accounts are added to the bank. Then the bank 
 13     object is saved. 
 14  */
 15  public class SerialDemo
 16  {
 17     public static void main(String[] args)
 18           throws IOException, ClassNotFoundException
 19     {     
 20        Bank firstBankOfJava;
 21        
 22        File f = new File("bank.dat");
 23        if (f.exists())
 24        {
 25           ObjectInputStream in = new ObjectInputStream(
 26              new FileInputStream(f));
 27           firstBankOfJava = (Bank) in.readObject();
 28           in.close();
 29        }
 30        else 
 31        {
 32           firstBankOfJava = new Bank();
 33           firstBankOfJava.addAccount(new BankAccount(1001, 20000));
 34           firstBankOfJava.addAccount(new BankAccount(1015, 10000));
 35        }
 36  
 37        // Deposit some money
 38        BankAccount a = firstBankOfJava.find(1001);
 39        a.deposit(100);
 40        System.out.println(a.getAccountNumber() + ": " + a.getBalance());
 41        a = firstBankOfJava.find(1015);
 42        System.out.println(a.getAccountNumber() + ": " + a.getBalance());
 43  
 44        ObjectOutputStream out = new ObjectOutputStream(
 45           new FileOutputStream(f));
 46        out.writeObject(firstBankOfJava);
 47        out.close();
 48     }
 49  }