Ciao a tutti,
sono un principiante della programmazione java e mi sono imbattuto in un problema che vi espongo. Devo salvare su file un hashmap che ha per chiave una String e per valore una classe personalizzata. Ho trovato numerosi post su quest'argomento ma non riesco a capire dove stia il mio errore. La classe da me creata implementa l'interfaccia Serializable e contiene solo tipi String e int (ho provato anche con Integer ma senza successo).
Ho provato ad aggiungere i metodi readObject e writeObject (vuoti) con il risultato che non ottengo più l'errore ma non viene salvato il valore, viene cioè salvato ("Test_1", null) (non mi sembra sia la soluzione corretta e quindi l'ho rimossa).
Qualcuno sarebbe così gentile da dirmi dove sto sbagliando?
Di seguito il codice:
codice:
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.HashMap;
public class SalvaOggetti {
class Persona implements Serializable {
String nome;
String cognome;
String indirizzo;
int età;
public Persona() {
}
public Persona(String nome, String cognome, String indirizzo, int età) {
this.nome = nome;
this.cognome = cognome;
this.indirizzo = indirizzo;
this.età = età;
}
}
HashMap<String, Persona> hashmap_persona = new HashMap<String, Persona>();
ObjectOutputStream oos;
public SalvaOggetti() {
hashmap_persona.put("Test_1", new Persona("Mario", "Rossi", "Casa sua", 30));
try {
oos = new ObjectOutputStream(new FileOutputStream("prova.txt"));
oos.writeObject(hashmap_persona);
oos.flush();
oos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new SalvaOggetti();
}
}