-2

I'm trying to copy a file with .dat extension from a certain directory decided by the user into the project directory. When I try to read the saved object selected by the user, the program always gives IOException.

File f = new File(chooser.getSelectedFile().getPath());
if(f.exists() && !f.isDirectory()) {
    FileInputStream flusso= null;
    ObjectInputStream leggiObj=null;
    try {
        flusso = new FileInputStream(chooser.getSelectedFile().getPath());
        System.out.println(chooser.getSelectedFile().getPath());
        leggiObj = new ObjectInputStream(flusso);
        if (leggiObj.readObject().getClass().equals(DatiProgresso.class)) {

            DatiProgresso dp = (DatiProgresso) leggiObj.readObject();//<----THIS LINE GIVES THE EXEPTION
            leggiObj.close();
            flusso.close();
            System.out.println("Ciao");
            FileOutputStream fop = new FileOutputStream("salvataggi/" + dp.getNome() + ".dat");
            ObjectOutputStream scriviObj = new ObjectOutputStream(fop);
            scriviObj.writeObject(dp);
            scriviObj.flush();
            fop.close();
        } else {
            JOptionPane.showMessageDialog(this, "Unacceptable file", "Error", JOptionPane.ERROR_MESSAGE);
        }
    } catch (HeadlessException ex) {
        System.out.println("HeadlessException");
        ex.printStackTrace();
    } catch (FileNotFoundException ex) {
        System.out.println("FileNotFoundException");
        ex.printStackTrace();
    } catch (IOException ex) {
        System.out.println("IOException");
        ex.printStackTrace();
    } catch (ClassNotFoundException ex) {
        System.out.println("ClassNotFoundException");
        ex.printStackTrace();
    }
}
}
else
{
JOptionPane.showMessageDialog(this, "Unacceptable file", "Error" ,JOptionPane.ERROR_MESSAGE);
}
DatiProgresso dp = (DatiProgresso) leggiObj.readObject();

This line gives the exception.

Freder
  • 51
  • 1
  • 5

1 Answers1

0

leggiObj.readObject().getClass().equals(DatiProgresso.class) - here you read your object from the data stream. On next line you attempt to read 2nd object from the stream. If there is no another object then stream fails.

Alexander Pavlov
  • 2,264
  • 18
  • 25