Implements Serializable - Dúvida

Então, eu tenho as seguintes classes:

Banco: Possui um ArrayList do tipo ;
ContaBancaria: Classe abstrata com vários atributos de tipos de conta;
ContaPoupança: Herda os lances da ContaBancaria e tem algo mais;
ContaCorrente: Herda os lances da ContaBancaria e tem algo mais;

Implementei o método Serializable na classe banco e no main uso esse código:

Banco b1 = new Banco("Itaú");
   try {
        FileOutputStream fs = new FileOutputStream("Dados.txt");
        ObjectOutputStream os = new ObjectOutputStream(fs);
        os.writeObject(b1);
        os.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}                                   

    try {
        FileInputStream fs = new FileInputStream("Dados.txt");
        ObjectInputStream os = new ObjectInputStream(fs);
        os.readObject();
        os.close();
    } catch (Exception e) {
        e.printStackTrace();
    }

Faço isso depois de ter populado o ArrayList com as contas e tal. O lance é que dá erro, ai botei serializable na classe ContaBancaria também. Aí vai beleza, mas nao to conseguindo carregar ele de volta. Ele deveria carregar esse ArrayList de volta populado não devia? Onde eu ainda poderia acessar por b1. Oque eu fiz errado ae?

Valeu