Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/08/2006, 10:09
André_01
 
Fecha de Ingreso: agosto-2006
Mensajes: 159
Antigüedad: 18 años, 4 meses
Puntos: 4
Más problemas con archivos

Hola:

Estoy trabajando en un agenda, por el momento muy sencilla.

Pare ello tengo además del main otras tres Clases, que son Menu, Persona, y Contactos.

La Clase Contactos es la que contiene un Vector de Personas, y Persona contiene un Hashtable con los datos de los contactos añadidos( nombre, teléfono etc...), además de un toString() sobreescrito.

El problema que tengo es que a la hora de salvar los datos de Persona al disco, lo hace en un archivo de texto que en llugar de respestar el salto de línea "\n" o el salto de carro "\r" o los dos al mismo tiempo lo que hace es escribir [], con lo que no puedo leer ese fichero correctamente para la persistencia de datos.

Para la escritura utilicé:
Código:
    public boolean salvarDatos(){
        boolean b = false;
        Object [] oa = new Object[this.getV().size()];
        Persona [] pa = new Persona[oa.length];
        this.getV().copyInto(oa);
        try{
            PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("C:\\guardados.txt")));
            for(int i=0;i<oa.length;i++){
                pa[i] = (Persona) oa[i];
                pw.print(pa[i].toString()+"\r\n");
            }
            pw.close();
            b = true;
        }catch(IOException ioe){};
        return b;
    }
En la Clase Persona el método toString():
Código:
    public String toString(){
        String a = "Nombre:\n"+this.getHs().get("nombre")+"\n"
        +"Apellidos:\n"+this.getHs().get("apellido 1")+" "+this.getHs().get("apellido 2")+"\n"
        +"Localidad:\n"+this.getHs().get("localidad")+"\n"
        +"Provincia:\n"+this.getHs().get("provincia")+"\n"
        +"Pais:\n"+this.getHs().get("pais")+"\n"
        +"Dirección:\n"+this.getHs().get("tipo via")+" "+this.getHs().get("nombre via")+" "+this.getHs().get("numero via")+" "+this.getHs().get("piso via")+"\n"
        +"Teléfono fijo:\n"+this.getHs().get("teléfono fijo")+"\n"
        +"Teléfono móvli:\n"+this.getHs().get("teléfono móvil")+"\n"
        +"Otro número de contacto:\n"+this.getHs().get("otro número de contacto");
        return a.toUpperCase();
    }
Alguna orientación por favor.

Gracias.