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
package abc; import java.io.IOException; /** * * @author Kenkox */ public class TestABC { ABC proyect = new ABC(); proyect.addStudents(); proyect.showStudents(); } }
Código
package abc; /** * * @author Kenkox */ import java.io.IOException; import java.util.*; public class ABC { /** * @param args the command line arguments */ private static List<StudentsRegister> studentList = new ArrayList<>(); private static StudentsRegister register[]; private DesSer working = new DesSer(); private double mark; private int option; public void addStudents(){ final int TOTAL_STUDENTS = keyboard.nextInt(); register = new StudentsRegister[TOTAL_STUDENTS]; for( int i=0; i < register.length; i++ ){ firstName = keyboard.next(); surname = keyboard.next(); mark = keyboard.nextDouble(); register[i] = new StudentsRegister(firstName, surname, mark ); studentList.add(register[i]); } working.setList( studentList ); } public void consultar(){ } public void eliminarAlumnos(){ } public void modificarAlumnos(){ } updateList(); for( int i= 0; i < studentList.size(); i++ ) } studentList = ( ArrayList<StudentsRegister> ) working.getList(); } }
Código
package abc; /** * * @author Kenkox */ import java.io.Serializable; private double mark; public StudentsRegister(){ this( "", "", 0.0 ); } setName( name ); setSurname( sur ); setMark( mk ); } name = nm; } return name; } surname = sur; } return surname; } public void setMark( double mk ){ mark = mk; } public double getMark(){ return mark; } getSurname(), getMark()); } }
Código
package abc; /** * * @author Kenkox */ import java.io.*; import java.util.*; public class DesSer { private List<StudentsRegister> temporalList = new ArrayList<>(); private List<StudentsRegister> temporalList2 = new ArrayList<>(); public void openFileSerialize(){ try{ } } } public void openFileDeserialize(){ try{ } } } public void setList( Collection<StudentsRegister> registerList ){ try{ openFileSerialize(); output.writeObject( registerList ); } } } try{ openFileDeserialize(); while(true){ temporalList = ( ArrayList<StudentsRegister> ) input.readObject(); temporalList2.addAll(temporalList); } } input.close(); return temporalList2; } } return null; } }