Hola. Buenas tardes, estoy haciendo un ejercicio con persistencia. Y tengo problemas para grabar los objetos en un archivo. Voy agregando los objetos de a uno, ya que tengo un menu. Cuando agrego el primer objeto se lee bien, pero cuando agrego el segundo ya no se lee ninguno. Nose que estoy haciendo mal
public class MiObjectOutputStream extends ObjectOutputStream{ //clase q hereda de objectoutputstream para no sobreescribir la cabecera
public void writeStreamHeader() { //nada }
public MiObjectOutputStream() throws IOException { super(); }
public MiObjectOutputStream (FileOutputStream fileOutputStream) throws IOException { // TODO Auto-generated constructor stub super(fileOutputStream); }
}
//Los metodos guardar y recuperar estan en otra clase
public void guardar (Jugador j) throws IOException { File f= new File("jugador.objeto"); if( f.exists()){ MiObjectOutputStream salida= new MiObjectOutputStream(new FileOutputStream(f)); salida.writeObject(j); salida.close(); } else { ObjectOutputStream salida= new ObjectOutputStream(new FileOutputStream(f,true)); salida.writeObject(j); salida.close(); }
}
public void recuperar() throws FileNotFoundException, IOException, EOFException, ClassNotFoundException { ObjectInputStream entrada=null; try{ entrada = new ObjectInputStream(new FileInputStream("jugador.objeto"));
while (true) { Jugador j = ( Jugador) entrada.readObject(); System.out.println(j.getNombre());
Hola. Buenas tardes, estoy haciendo un ejercicio con persistencia. Y tengo problemas para grabar los objetos en un archivo. Voy agregando los objetos de a uno, ya que tengo un menu. Cuando agrego el primer objeto se lee bien, pero cuando agrego el segundo ya no se lee ninguno. Nose que estoy haciendo mal
public class MiObjectOutputStream extends ObjectOutputStream{ //clase q hereda de objectoutputstream para no sobreescribir la cabecera
public void writeStreamHeader() {
//nada
}
public MiObjectOutputStream() throws IOException {
super();
}
public MiObjectOutputStream (FileOutputStream fileOutputStream) throws IOException {
// TODO Auto-generated constructor stub
super(fileOutputStream);
}
}
//Los metodos guardar y recuperar estan en otra clase
public void guardar (Jugador j) throws IOException {
File f= new File("jugador.objeto");
if( f.exists()){
MiObjectOutputStream salida= new MiObjectOutputStream(new FileOutputStream(f));
salida.writeObject(j);
salida.close();
} else {
ObjectOutputStream salida= new ObjectOutputStream(new FileOutputStream(f,true));
salida.writeObject(j);
salida.close();
}
}
public void recuperar() throws FileNotFoundException, IOException, EOFException, ClassNotFoundException {
ObjectInputStream entrada=null;
try{ entrada = new ObjectInputStream(new FileInputStream("jugador.objeto"));
while (true) {
Jugador j = ( Jugador) entrada.readObject();
System.out.println(j.getNombre());
}
} catch(IOException io){
} finally {
try {
entrada.close();
} catch (Exception exp) {
}
}