Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   Serializar objeto (http://www.forosdelweb.com/f45/serializar-objeto-489303/)

laudrup 11/05/2007 14:18

Serializar objeto
 
Alguien sabria explicarme como podria serializar el contenido de un arraylist y luego enviar el contenido a un fichero??
Gracias

chuidiang 12/05/2007 14:20

Re: Serializar objeto
 
Hola:

Cada una de las clases que metas en el ArrayList debe implementar la interface Serializable. ArrayList ya lo implementa.

Aquí tienes como escribir objetos Serializable en un fichero.

Se bueno.

laudrup 13/05/2007 11:41

Re: Serializar objeto
 
Voy a ponerlo todo a ver si alguien puede decirme que falla.
Tengo puesto para serializar todas clases que entran en el arraylist peri sigue sin funcionar

//este es el constructor de lo que quiero serializar
ArrayList tarea=new ArrayList();
Iterator e=tarea.iterator();
Tasca tasca;
Projecte(){}
Projecte(int tareas) throws IOException
{
System.out.println(" Nombre Projecto : ");
InputStreamReader isr2 = new InputStreamReader(System.in);
BufferedReader br2 = new BufferedReader(isr2);
String linea2=br2.readLine();
setNom(linea2);
for(int i=0;i<tareas;i++)
{

System.out.println(" Nombre Tarea : ");
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String linea=br.readLine();
tasca=new Tasca(linea);

tarea.add(tasca.getID()+"."+tasca.getNom());

}
}
//para serializarlo
Projecte proj;
ObjectOutputStream out2= new ObjectOutputStream(new FileOutputStream("projectes.bin"));
ObjectInputStream in2= new ObjectInputStream(new FileInputStream("projectes.bin"));
out2.writeObject(proj);
//para sacarlo por pantalla
Projecte p;
p=(Projecte) in2.readObject();
System.out.println(p);
//y el error que me da
Exception in thread "main" java.io.NotSerializableException: java.util.AbstractList$Itr
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unkn own Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unk nown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at Client.main(Client.java:76)
Gracias..........

chuidiang 13/05/2007 22:43

Re: Serializar objeto
 
Hola:

No estás intentando meter el arrayList, sino una clase que se llama Projecte. ¿Implementa serializable esa clase?. Tiene pinta (si solo es el código que pones aquí) que alguien hereda de AbstractList (¿Projecte?) y AbstractList no implementa serizable, así que no puedes escribirlo en fichero.

Prueba a escribir sólo el ArrayList tarea.

Se bueno.


La zona horaria es GMT -6. Ahora son las 21:09.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2024, Jelsoft Enterprises Ltd.