One to note about your program,
you should close resources in the order your open them. So in your program, you should swap the order of your close statements. E.g.
FileInputStream fis = new FileInputStream("Foo.txt");
BufferedInputStream bis = new BufferedInputStream(fis);
ObjectInputStream ois = new ObjectInputStream(bis);
Should then be closed in the reverse order.
ois.close();
bis.close();
fis.close();
Regards,
-Peter