manejo de objetos desde un archivo

java_a
25 de Marzo del 2008
Hola a todos mi asuntoes que quiero manejar objetos en un archivo, mi problema es que tengo una clase Persona que encapsula los datos de la persona e implementa la interfaz serializable

public class Persona implements Serializable {
private String dni;
private String nombre;
private String tel;

/* public void setDNI(String s)
{
dni = s;
}*/

public String getDNI()
{
return dni;
}

public String getNombre()
{
return nombre;
}

public String getTel()
{
return tel;
}
/** Creates a new instance of Persona */
public Persona(String s, String ss, String sss) {
dni = s;
nombre = ss;
tel = sss;
}

}

y despues quiero iterar con los datos con una clase llamada agenda:

public class Agenda {
private Persona p;
private Persona result;
private Hashtable<String,Persona> arr;
private Object o = new Hashtable();
private FileInputStream fi;
private ObjectInputStream oi;
Enumeration itera;
public boolean agregar(String dni, String nom, String tel)
{
p = new Persona(dni,nom,tel);
// p.setDNI(dni);
if(arr.containsKey(p.getDNI()))
return false;
else
{
arr.put(p.getDNI(),p);
return true;
}
}

public Agenda() throws FileNotFoundException,IOException, ClassNotFoundException {
fi = new FileInputStream("C:\Documents and Settings\Administrador\Mis documentos\cuatrimestre 14\Agenda.txt");
oi = new ObjectInputStream(fi);
arr = (Hashtable) oi.readObject();
fi.close();
//catch (EOFException e)
//{

//}
}

pero al correrlo me marca un error de ClassCastException en tiempo de ejecucion al tratar de asignar a Hashtable arr = oi.readObject(); y no se que hacer si alguien me podria ayudar lo agradeceria