Originariamente 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!
Ah ovvio xD
Comunque ho provato a fare delle modifiche ma ora non riesco più nemmeno a salvare
Ecco il nuovo sorgente della classe JPhoneBook


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();
		}
	}
	
}
Ora l'errore è
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)