Originariamente inviato da the_dariuz
FileOutputStream x=new FileOutputStream("persone.dat",true);

alla funzione di lettura ho provato a mettere di nuovo questa istruzione dopo che mi dà il primo risultato=(persona) ois.readObject();

dopo il primo risultato cioè nome e cognome la seconda volta mi torna questo:

java.io.StreamCorruptedException: invalid type code: AC
Ahhh ma allora dovevi specificarlo prima che ti dà StreamCorruptedException ..... spiegati bene!!!

Comunque questo è un altro problema quando non si conosce bene come funziona la serializzazione.
Te lo dico un po' brutalmente .... la serializzazione non funziona in append!!!!

Vuoi sapere il perché? Quando la serializzazione inizia, scrive 2 byte di header di marcatura. Se tu appendi ottieni una cosa del tipo:

<header> ....<oggetti>.... <header> ....<oggetti>....

Quando rileggi lo stream il primo header è ok, dal momento che correttamente marca l'inizio dello stream. Ma appena si trova un ulteriore header, che non si aspetta .... beh, hai capito.