Echa un ojo a esta librería GSON
https://code.google.com/p/google-gson/Es capaz de convertir un objeto java en un string json y viceversa, puede ser una alternativa a guardar y recuperar objetos de un fichero. Basta con convertir el objeto a string json y guardarlo en el fichero.
Otra opción es hacerlo a mano, guardando en un formto que te inventes cada objeto, atributo a atributo.
Se bueno.
Hola Betikano,
Creo que para que un objeto pueda ser almacenado en disco duro, en un fichero por ejemplo, se ha de implementar la interfaz serializable por narices. Al menos es el único método que he usado yo por ahora para trabajar con objetos en ficheros.
Aquí te paso un link:
http://www.chuidiang.com/java/ficheros/ObjetosFichero.phpAclarado el tema, no puedo utlizar ninguna otra interfaz ni metodo que trate con objectos.
Me dan un almacen de objetos de la clase DirectoryItem y tengo que hacer la carga y descarga con :
public static DirectoryPRAC5 load(File file) {
DirectoryPRAC5 resultat = new DirectoryPRAC5();
....
...
...
return resultat;
}
public static boolean save(File file, DirectoryPRAC5 directory) { }
el problema que tengo es que al hacer el metodo save me guarda en el archivo DirectoryPackage.DirectoryPRAC5@76c511b y no el contenido del directorio por ejemplo:
Antonio
Lopez
Castillo
980987234
antonio@gmail.comla classe DirectoryItem es:
public class DirectoryItem implements Comparable {
private String name, surname1, surname2;
private Set<Long> telephones;
private Set<String> emails;
public DirectoryItem (String name, String surname1) {
if (name==null || surname1==null)
throw new IllegalArgumentException("null values not admitted");
if (name.trim().equals("") || surname1.trim().equals(""))
throw new IllegalArgumentException("empty or blank strings not admitted");
this.name=name.toUpperCase();
this.surname1=surname1.toUpperCase();
this.surname2=null;
this.telephones = new TreeSet<Long>();
this.emails = new TreeSet<String>();
}
public DirectoryItem (String name, String surname1, String surname2) {
this(name, surname1);
if (surname2!=null) {
if (surname2.trim().equals(""))
throw new IllegalArgumentException("empty or blank strings not admitted");
this.surname2 = surname2.toUpperCase(); }
}
...
// beware, these get methods return a copy not the attributes themselves
public Collection<Long> getTelephones () {return new TreeSet(this.telephones);} public Collection<String> getEmails () {return new TreeSet(this.emails);}
...
protected boolean addTelephone(long telephone) {
// ull! wrapping automatic de telefon (de long a Long)
return this.telephones.add(telephone);
}
protected boolean addEmail (String email) {
return this.emails.add(email);
}
protected boolean removeTelephone (long telephone) { return this.telephones.remove(telephone);
}
protected boolean removeEmail (String email) { return this.emails.remove(email);
}
...