Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - betikano

#1
Java / Re: guardar objecto en fichero
24 Mayo 2014, 18:48 PM
Cita de: ivancea96 en 24 Mayo 2014, 14:58 PM
Un FOR recorriendo cada linea?

esa es mi duda, si se puede hacer un for con

   FileWriter    fw = new FileWriter(file, true);
   BufferedWriter  bw = new BufferedWriter(fw);
        bw.write(......);
   bw.newLine();   

            
   bw.close();   

de alguna manera que me vaya haciendo el bw.write cada vez en una linea distinta en el archivo.
#2
Java / Re: guardar objecto en fichero
24 Mayo 2014, 13:21 PM
Muy buenas de nuevo, tengo una duda, si yo se que en el archivo tengo que guardar varias lineas(tengo como una collection ) , como puedo hacer para que el varXX.write me pinte en el archivo todas las lineas y no sola una? (tengo una libreta de alumnos con varias notas, y al hacer el varXX.write solo me guarda 1 alumno y no todos los que tengo), gracias
#3
Java / Re: guardar objecto en fichero
19 Mayo 2014, 23:04 PM
Cita de: ivancea96 en 19 Mayo 2014, 22:50 PM
Quizás lo que busques sea, en vez de hacer "Fescribe.write(directory + "\r\n");", ir metiendo cada elemento de el objeto, llamando a sus getters. No se cómo es el objeto, pero un ejemplo:

Código (java) [Seleccionar]
Fescribe.write(directory.getName() + "\r\n");

así si:
            Fescribe.write(directory.space.toString() +"\r\n");

mil gracias crack!
#4
Java / Re: guardar objecto en fichero
19 Mayo 2014, 22:47 PM
Cita de: Chuidiang en 19 Mayo 2014, 22:27 PM
Pues lo dicho,

Fescribe.write(directory + "\r\n");

está llamando a directory.toString() para salvar la clase y toString(), por defecto, devuelve una especie de dirección de memoria ( tu DirectoryPackage.DirectoryPRAC5@76c511b )

Define en esa clase un método toString() sobreescribiendo el de Object y devuevle ahí el String que tú quieras meter en el fichero.

Se bueno.

en esta clase no me deja crear/sobreescribir nada, en principio debería escribirlo bien en el archivo tal y como me dan el toString()
#5
Java / Re: guardar objecto en fichero
19 Mayo 2014, 21:00 PM
Cita de: Chuidiang en 19 Mayo 2014, 20:53 PM
Hola:

¿Y como haces el save?.

Lo que estás guardando es la "dirección de memoria" (aunque en java dicen que no existe) donde está almacenado el objeto y que es lo que devuelve por defecto el método toString() de Object.

Si no puedes usar una librería adicional como gson que no interfiere en absoluto con tu objeto ni las interfaces para salvarlo, no te queda más remedio que ir llamando uno a uno a todos los métodos get de tu clase hasta obtener tipos "primitivos" como int, String, double, boolean, y guardar uno a uno todos ellos.

Se bueno.

    public static boolean save(File file, DirectoryPRAC5 directory) {

BufferedWriter Fescribe=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file,true), "utf-8")); 
         
              Fescribe.write(directory + "\r\n"); 
             
              //Cierra el flujo de escritura 
              Fescribe.close(); 
              return true;
}
#6
Java / Re: guardar objecto en fichero
19 Mayo 2014, 18:18 PM
Cita de: Chuidiang en 19 Mayo 2014, 00:00 AM
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.

Cita de: juanxo1988 en 18 Mayo 2014, 19:55 PM
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.php

Aclarado 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.com


la 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);
}
...
#7
Java / Re: guardar objecto en fichero
18 Mayo 2014, 23:27 PM
Cita de: juanxo1988 en 18 Mayo 2014, 19:55 PM
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.php

En principio no puedo implementar nada mas ya que me dan la clase predefinida:

public class DirectoryPRAC5 implements Directory {
...
...
}

y para hacer la carga y descarga no puedo utilizar mecanismos de serialización.

public static DirectoryPRAC5 load(File file) {} //metodo cargar
public static boolean save(File file, DirectoryPRAC5 directory) {} //metodo descargar/guardar
#8
Java / guardar objecto en fichero
18 Mayo 2014, 19:20 PM
Hola, se puede guardar un objecto en un fichero sin utilizar los metodos serializacion? ya que si los guardo con

BufferedWriter Fescribe=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file,true), "utf-8"));

el resultado en el archivo es:

DirectoryPackage.DirectoryPRAC5@128c5c03

cuando yo he guardado un Objecto del tipo: Apellido1,Apellido2,Nombre

gracias de antemano.
#9
Java / Re: Duda Arraylist
17 Mayo 2014, 21:35 PM
Cita de: gordo23 en 17 Mayo 2014, 21:30 PM
Y si lo que quieres hacer es agregar un email al objeto DirectoryItem con posición current en el ArrayList, esto tendrías que hacer:

Código (java) [Seleccionar]
public boolean addEmail(String email) {
   return this.space.get(current).addEmail(email)
}


Porque el método que escribí antes es bastante inútil. Solo te agrega un email en un DirectoryItem creado con "Nombre" y "Apellido", en cambio con este método, si tenés 5 objetos DirectoryItem guardados en el ArrayList, podés recorrerlos uno por uno, cambiando el valor del entero current e ir agregandoles el email.

si mejor utilizare este ultimo, mañana haré las pruebas , mil gracias!
Saludos.-
#10
Java / Re: Duda Arraylist
17 Mayo 2014, 21:27 PM
Cita de: gordo23 en 17 Mayo 2014, 21:23 PM
¿Así funciona?

Código (java) [Seleccionar]
public boolean addEmail(String email) {
    DirectoryItem item = new DirectoryItem("Nombre", "Apellido");
    item.addEmail(email);
    this.space.add(item);
    return true;
}


mil gracias!!!!! ya no da error, ara probare si lo ingresa bien, gracias de nuevo!