Título: al serializar, se sobreescriben los objetos, como puedo solucionarlo? Publicado por: Kenkox en 27 Agosto 2012, 18:54 pm Aqui hay 4 clases, una clase se llama StudentsRegister, la cual implementa a la interfaz Serializable, tiene 3 variables de instancia con sus respectivos metodos get y set.... esa clase la he revisado, y esta perfectamente echa.
La siguiente clase se llama DesSer, la cual ayuda a serializar y deserializar en el archivo... tiene un metodo que se llama setList.. la cual llama al metodo writeObject(); para escribir la lista que se recibe en el archivo.. ademas tiene un metodo llamado getList, la cual regresa un ArrayList<StudentsRegister> ( este metodo desserializa el archivo, y utiliza al metodo readObject .. despues esta la clase ABC.. esta clase esta incompleta, no puedo completarla ya que tengo un problema con las altas ( agregar alumnos a un arrayList y escribirlo en un archivo ) La clase ABC tiene al metodo addStudents... primero pido cuantos alumnos se van a agregar, y despues , estos datos se utilizan para inicializar cada miembro del array register, al momento de inicializarlos los agrega al arrayList..... al momento de que se introdujeron todos los datos de los estudiantes, se llama al metodo setList de la clase DesSer para escribir esta lista en el archivo.... este proceso esta bien.. o por lo menos no he notado ningun error... incluso en el metodo setList puse un println para poner si se han guardado los datos... y si aparece... despues esta la clase TestABC... el cual contiene el metodo principal.. creamos un objeto ABC... y llamamos al metodo addStudents y al metodo showStudents.... TOODO sucede correctamente, me pide el numero de los alumnos, yo introdusco los datos de los alumnos, y los escribe en el archivo... sin embargo, el problema radica al volver a ejecutar TestABC, por segunda vez introdusco alumnos nuevos .. dice que los escribio, despues me muestra los alumnos pero SOLO me muestra a los alumnos que acababa de agregar y NO los que ya habia agregado en la primera ejecucion.. trate de solucionarlo modificando al metodo getList.. pero sigue sobreescribiendolos... Alguien podria decirme porque sucede esto? y como podria solucionarlo?? osea, que al momento de que llame al metodo showStudents, me muestre a todos los alumnos( objetos ) que ya he agregada anteriormente De antemano, Gracias Código
Código
Código
Código
Título: Re: al serializar, se sobreescriben los objetos, como puedo solucionarlo? Publicado por: 4nc3str4l en 30 Agosto 2012, 16:20 pm El problema reside aqui: ya que cuando haces un addstudents el empieza desde i =0 i va guardando estudiantes en la posicion 0, 1, 2 ,3 ,4 y cuando vuelves a invocar el metodo pues vuelve a 0 y empieza a guardar desde 0,1,2,3,4.... asi que los sobreescribe, Creo que la cuestión sería guardar la variable i para que continue desde donde lo dejo en el primer registro de alumnos.
Código: public void addStudents(){ Título: Re: al serializar, se sobreescriben los objetos, como puedo solucionarlo? Publicado por: 4nc3str4l en 30 Agosto 2012, 16:50 pm Mira yo haria la siguiente modificacion en el addstudents para guardar una variable contador para que no me sobreescriba los estudiantes:
Código: public void addStudents(){ Creo que con eso ya esta listo tu problema. ;) |