Nel catch scrivi:
ex.printStackTrace();
Ricompila ed esegui. Sulla console ti apparirà la traccia dell'eccezione.
Per la sua posizione nel codice, quel close non viene invocato se si verifica un'eccezione. La forma corretta è:
Codice:
FileOutputStream fout = null;
try {
fout = new FileOutputStream(il file);
ObjectOutputStream out = new ObjectOutputStream(fout);
...eccetera
} catch(IOException ex) {
...eccetera
} finally {
if(fout != null) {
try {
fout.close();
} catch(IOException ex) {
ex.printStackTrace();
}
}
}
il blocco finally garantisce che fout.close() sia invocato a prescindere da ciò che capita nel blocco try.