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
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.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();
}
}
}
File JMain.java
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();
}
}
}
Infatti quando chiamo il metodo leggiContatti();
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)