SoloCodigo
		Programación General => Java => Mensaje iniciado por: serbc25 en Viernes 15 de Diciembre de 2006, 17:03
		
			
			- 
				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