Foros del Web » Programación para mayores de 30 ;) » Java »

Problemas para abrir un archivo

Estas en el tema de Problemas para abrir un archivo en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/12/2006, 10:01
 
Fecha de Ingreso: enero-2006
Mensajes: 263
Antigüedad: 18 años, 3 meses
Puntos: 1
De acuerdo Problemas para abrir un archivo

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()

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().toStr ing();
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,VentanaPrincipa l.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
  #2 (permalink)  
Antiguo 15/12/2006, 20:17
Avatar de ah_puch  
Fecha de Ingreso: agosto-2005
Ubicación: Ecatepec, México
Mensajes: 180
Antigüedad: 18 años, 8 meses
Puntos: 3
Re: Problemas para abrir un archivo

hola amigo si estas utilizando java Swing por que no lo intentas con el JFileChooser espero te sea util aqui te dejo un ejemplo sencillo sobre JFileChooser:

Código PHP:
import java.io.*;
import java.text.*;
import java.lang.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;

public class 
mi_file{
    public static 
void main(String Args[]){
        new 
XServer().Make();
    }
}

class 
XServer extends JFrame implements ActionListener{
    
String ruta;    
    
JButton cmd_Abrir = new JButton("Abrir Archivo");
    
JButton cmd_Guardar = new JButton("Guardar Archivo");
    
JTextArea Txt_Info = new JTextArea();
    
JPanel Mi_Panel = new JPanel();
    
Container coloca getContentPane();
    public 
void Make(){
        
        
Mi_Panel.setLayout(null);
        
        
cmd_Abrir.setBounds(80,1,120,25);
            
cmd_Abrir.setVisible(true);
            
Mi_Panel.add(cmd_Abrir);
        
        
cmd_Guardar.setBounds(185,1,140,25);
            
cmd_Guardar.setVisible(true);
            
Mi_Panel.add(cmd_Guardar);
        
        
        
Txt_Info.setBounds(1,30,390,390);
            
Txt_Info.setVisible(true);
            
Mi_Panel.add(Txt_Info);
        
        
coloca.add(Mi_Panel);
        
        
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
setSize(400,400);
        
setVisible(true);
        
        
cmd_Abrir.addActionListener(this);
        
cmd_Guardar.addActionListener(this);
    
    }

    public 
void actionPerformed(ActionEvent e){    
    
    
/************************Menu Abrir*****************************/
        
if(e.getSource()==cmd_Abrir){
            
JFileChooser dialog = new JFileChooser();
            
Container parent =cmd_Abrir.getParent();
            
String linea;
            
int mychoose;
                
dialog.setSize(400,400);
                
mychoose dialog.showOpenDialog(parent);
                if(
mychoose == JFileChooser.APPROVE_OPTION){
                    
ruta String.valueOf(dialog.getSelectedFile().getAbsoluteFile());
                    
File MyFile = new File (ruta); 
                    try{
                        
BufferedReader input = new BufferedReader(new
                        
FileReader(ruta));
                        while ((
linea=input.readLine())!=null){
                            
Txt_Info.setText(String.valueOf(Txt_Info.getText()) + "\n" +linea);
                            
linea ="";
                          }
                    } catch(
IOException ex){ System.out.println("No se pudo abrir el archivo");}  
                  }
        }
    
/*******************************************| Menu Guardar |********************************************/    
    
        
if(e.getSource()==cmd_Guardar){
            
JFileChooser dialog = new JFileChooser();
            
Container parent cmd_Guardar.getParent();
            
int mychoose;
            
dialog.setSize(400,400);
            
mychoose dialog.showSaveDialog(parent);
            if(
mychoose == JFileChooser.APPROVE_OPTION){
                if (
ruta!=""){
                    
ruta String.valueOf(dialog.getSelectedFile().getAbsoluteFile());
                }
            
                
File MyFile = new File (ruta); 
            
                try{
                       
FileWriter writer=new FileWriter(ruta,true);
                       
writer.write(String.valueOf(Txt_Info.getText()));
                       
writer.close();
                 } catch(
IOException ex){ System.out.print("Error");}
              }
        }
    }

__________________
La programacion no es un trabajo, es un Arte
http://www.purodev.blogspot.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:57.