Ah ovvio xDOriginariamente inviato da Alex'87
Stai scrivendo su file stringhe (fout.writeObject(JContact.Nome + JContact.Numero);) ma quando poi vai al leggere casti a JPhoneBook (phoneBook = (JPhoneBook)In.readObject();), non va bene! Se scrivi stringhe devi poi leggere stringhe!
Comunque ho provato a fare delle modifiche ma ora non riesco più nemmeno a salvare
Ecco il nuovo sorgente della classe JPhoneBook
Ora l'errore ècodice:import java.io.*; public class JPhoneBook { private String Nome; private String Numero; public JPhoneBook(){} public JPhoneBook(String Nome, String Numero){ this.Nome = Nome; this.Numero = Numero; } public void aggiungiContatto(JPhoneBook JContact){ try{ FileOutputStream f = new FileOutputStream("Contatti.dat",true);// true serve per aprire il file in modalità append// ObjectOutputStream fout = new ObjectOutputStream(f); fout.writeObject(JContact); f.close(); }catch(Exception e){ e.printStackTrace(); } } public static void leggiContatti(){ JPhoneBook phoneBook; try{ FileInputStream fis = new FileInputStream("Contatti.dat"); ObjectInputStream In = new ObjectInputStream(fis); while(true){ try{ phoneBook = (JPhoneBook)In.readObject(); System.out.println(phoneBook.Nome + " " + phoneBook.Numero); }catch(EOFException E){ System.out.println("End of Contact"); break; } } }catch(Exception e){ e.printStackTrace(); } } }
java.io.NotSerializableException: JPhoneBook
at java.io.ObjectOutputStream.writeObject0(ObjectOutp utStream.java:1156)
at java.io.ObjectOutputStream.writeObject(ObjectOutpu tStream.java:326)
at JPhoneBook.aggiungiContatto(JPhoneBook.java:18)
at JMain.main(JMain.java:19)


Rispondi quotando