Ciao sto sviluppando una rubrica in java, per ora è a consolle... Cmq volevo poter salvare i dati su un file per poter ricaricarli ogni volta che voglio...
Però riesco solo a salvare ma poi non riesco a ricaricare i dati e a stamparli...
Vi posto i sorgenti:
File JPhoneBook.java
File JMain.javacodice: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.Nome + JContact.Numero); f.close(); }catch(Exception e){ System.out.print(e); } } 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(); } } }
Infatti quando chiamo il metodo leggiContatti();codice:import java.io.*; public class JMain { public static void main(String[] args){ InputStreamReader In = new InputStreamReader(System.in); BufferedReader Input = new BufferedReader(In); int selezione; String Nome, Numero; System.out.println("Premi 1 per aggiungere un contatto - 2 per stampare la lista dei contatti"); try{ selezione = Integer.parseInt(Input.readLine()); if(selezione == 1){ System.out.println("Inserisci il nome del contatto"); Nome = Input.readLine(); System.out.println("Inserisci il numero del contatto"); Numero = Input.readLine(); JPhoneBook JContact = new JPhoneBook(Nome, Numero); JContact.aggiungiContatto(JContact); } if(selezione == 2){ JPhoneBook.leggiContatti(); } }catch(IOException E){ E.printStackTrace(); } } }
mi da questo errore:
java.lang.ClassCastException: java.lang.String cannot be cast to JPhoneBook
at JPhoneBook.leggiContatti(JPhoneBook.java:34)
at JMain.main(JMain.java:22)

Rispondi quotando