Os pongo un fragmento del codigo.
Código:
public class AdministracionElementos {
public static int numPeliculas = 0;
public static void main(String[] args){
Pelicula p1 = new Pelicula("Expediente XXXXXXXXX","Señor X",1000.0,"Cihhhhhencia-Ficcion");
Pelicula p2 = new Pelicula("Expediente X","Señor X",100.0,"Ciencia-Ficcion");
Pelicula p3 = new Pelicula("Avatar","Señor Y",222.0,"Ciencia-Ficcion");
try{
//Añadimos pelicula
añadirPeliculaArchivo(p2);
añadirPeliculaArchivo(p3);
//Leemos peliculas
//for(int i = 1;i <= numPeliculas;i++){
leerPeliculasArchivo();
//}
}catch(IOException excIO){
System.out.println("No se ha podido realizar la operacion de escritura");
}catch(ClassNotFoundException excNF){
}
}
public static void añadirPeliculaArchivo(Pelicula pelGrabar) throws IOException{
//Creo Stream de escritura
FileOutputStream fileOut = new FileOutputStream("datosPeliculas",true);
//Creo el escritor de objetos
ObjectOutputStream salidaObj = new ObjectOutputStream(fileOut);
salidaObj.writeObject(pelGrabar);
numPeliculas =numPeliculas + 1;
salidaObj.flush();
salidaObj.close();
fileOut.close();
}
public static void leerPeliculasArchivo() throws IOException, ClassNotFoundException{
Pelicula auxiliar;
//Extraccion de archivo
FileInputStream fileInp = new FileInputStream("datosPeliculas");
ObjectInputStream entradaObj = new ObjectInputStream(fileInp);
System.out.println(numPeliculas);
for(int i = 1;i <= numPeliculas;i++){
auxiliar = (Pelicula) entradaObj.readObject();
auxiliar.mostrarPelicula();
}
entradaObj.close();
fileInp.close();
}
Nota: lo del numero de peliculas deberia ir en otro archivo para mantener memoria pero aun "adaptandolo" para que funcione no va, este no es el error.
Todas las clases que lo necesitan implementan Serializable.
Saludos y gracias