Foros del Web » Programación para mayores de 30 ;) » Java »

Serializar objeto

Estas en el tema de Serializar objeto en el foro de Java en Foros del Web. Alguien sabria explicarme como podria serializar el contenido de un arraylist y luego enviar el contenido a un fichero?? Gracias...
  #1 (permalink)  
Antiguo 11/05/2007, 14:18
 
Fecha de Ingreso: febrero-2007
Mensajes: 172
Antigüedad: 17 años, 2 meses
Puntos: 0
Serializar objeto

Alguien sabria explicarme como podria serializar el contenido de un arraylist y luego enviar el contenido a un fichero??
Gracias
  #2 (permalink)  
Antiguo 12/05/2007, 14:20
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
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.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 13/05/2007, 11:41
 
Fecha de Ingreso: febrero-2007
Mensajes: 172
Antigüedad: 17 años, 2 meses
Puntos: 0
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..........
  #4 (permalink)  
Antiguo 13/05/2007, 22:43
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
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.
__________________
Apuntes Java
Wiki de Programación
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:12.