• Lunes 13 de Mayo de 2024, 08:00

Autor Tema:  Problemas Al Cargar Datos De Un Fichero  (Leído 964 veces)

serbc25

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Problemas Al Cargar Datos De Un Fichero
« en: Viernes 15 de Diciembre de 2006, 17:03 »
0
Hola a todos, tengo problemas para cargar un fichero, grabar lo hace correctamente lo que tengo problemas es a la hora de caragr los datos que al ejecutar me da el siguiente error:

Exception in theread main java.lang.ClassCastException:MisLibros
at Libros.<init>(Ejemplo78.java:80)
at Ejemplo78.main(ejemplo78.java.10)

He podifo ver que el problema viene del readObject(), grabar si lo hacer correctamente

Os pongo el codigo por si me podeis hecha runa mano

imports


public class Ejemplo78{
   public static void main(String[] args)throws IOException,ClassNotFoundException{
      Libros mv=new Libros();
      mv.setVisible(true);
   }
}

class Libros extends JFrame{
   //Declaracion de variables
   ***;
   MisLibros lib;
   ***
             ArrayList<MisLibros>miarray=new ArrayList<MisLibros>();
   fileInputStream fs;
   ObjectInputStream os;
   FileOutputStream fsm;
   ObjectOutputStream osm;
   String path="G:\\Java\\Ejemplos Java\\datos2.dat";
   File mifichero=new File(path);
   public Libros()throws IOException,ClassNotFoundException{
                          .....
      //Apertura de fichero   
      if(mifichero.exists()){
         JOptionPane.showMessageDialog(null,"SI");
         fs=new FileInputStream(mifichero);
         os=new ObjectInputStream(fs);
         miarray=(ArrayList)os.readObject();
         os.close();      
      }else{
         JOptionPane.showMessageDialog(null,"NO");   
      }
      
      
      //Inicializacion objetos de los cuadros de dialogo
      ....
                      //Fin inicializacion
      
      
      ActionListener al=new ActionListener(){
         public void actionPerformed(ActionEvent e){
            Object ob=e.getSource();
            if(ob==cmdAlta){
               Alta.setVisible(true);
            }else if(ob==cmdBuscar){
               Buscar.setVisible(true);
            }else if(ob==cmdBorrar){
               Borrar.setVisible(true);
            }else if(ob==cmdNavegar){
               Navegar.setVisible(true);
            }
         }
      };
      cmdAlta.addActionListener(al);
      cmdBuscar.addActionListener(al);
      cmdBorrar.addActionListener(al);
      cmdNavegar.addActionListener(al);
      
      //Evento cierre de ventana            
      addWindowListener(new WindowAdapter(){
         public void windowClosing(WindowEvent e){
            try{
                  fsm=new FileOutputStream(path);
                  osm=new ObjectOutputStream(fsm);
                  osm.writeObject(lib);
                  osm.close();      
               }catch (IOException ex){
                  
               }
               System.exit(0);
               
            }
                                      }
      });
   }
   public void AnadirDatos(){
      try{
         String ISBN=Alta.txtISBN.getText();
         String TITULO=Alta.txtTitulo.getText();
         String AUTOR=Alta.txtAutor.getText();
         String EDITORIAL=Alta.cbEditorial.getSelectedItem().toString();
         lib= new MisLibros (ISBN,TITULO,AUTOR,EDITORIAL);
         miarray.add(lib);   
         fsm=new FileOutputStream(path);
         osm=new ObjectOutputStream(fsm);
         osm.writeObject(lib);
         osm.close();      
      }catch(IOException ex){
         
      }
      }
}
//Fin Ventana Principal

//Cuadro de dialogo Alta
class JAlta extends JDialog{
   //Declaracion de variables
   
   public JAlta(java.awt.Frame parent,boolean modal)throws IOException,ClassNotFoundException{
      //Inicializacion de variables
      //Eventos
      //Evento pulsacion botones
      ActionListener al=new ActionListener(){
         public void actionPerformed(ActionEvent e){
            Object ob=e.getSource();
            if(ob==cmdGuardar){                              VentanaPrincipal.AnadirDatos();
                     JOptionPane.showMessageDialog(null,VentanaPrincipal.miarray.size());
                     txtISBN.setText("");
                     txtTitulo.setText("");
                     txtAutor.setText("");
                     cbEditorial.setSelectedIndex(0);
                     
                  }else{
                     txtISBN.setText("");
                     txtTitulo.setText("");
                     txtAutor.setText("");
                     cbEditorial.setSelectedIndex(0);
                  }
            }else if(ob==cmdCancelar){
               CerrarVentana();   
            }   
         }
      };
      cmdGuardar.addActionListener(al);
      cmdCancelar.addActionListener(al);
      
      //Evento Cerrar Ventana
      addWindowListener(new WindowAdapter(){
         public void windowClosing(WindowEvent e){
            CerrarVentana();
         }
      });
   }
   
   //Funciones
         
}
//Fin Cuadro de dialogo Alta


//Clase Libreria, serializacion de fichero
class MisLibros implements Serializable{
   String numlibro;
   String Titulo;
   String Autor;
   String Editorial;
   public MisLibros (String ISBN,String TITULO,String AUTOR,String EDITORIAL){
      numlibro=ISBN;
      Titulo=TITULO;
      Autor=AUTOR;
      Editorial=EDITORIAL;
   }
   
   public void setISBN(String ISBN){
      numlibro=ISBN;
   }
   public String getISBN(){
      return numlibro;   
   }
   public void setTitulo(String TITULO){
      Titulo=TITULO;   
   }
   public String getTitulo(){
      return Titulo;   
   }
   public void setAutor(String AUTOR){
      Autor=AUTOR;   
   }
   public String getAutor(){
      return Autor;   
   }
   public void setEditorial(String EDITORIAL){
      Editorial=EDITORIAL;   
   }
   public String setEditorial(){
      return Editorial;   
   }
}
//Fin clase Libreria