Я пытаюсь скопировать файл с расширением .dat из определенного каталога, выбранного пользователем, в каталог проекта. Когда я пытаюсь прочитать сохраненный объект, выбранный пользователем, программа всегда выдает 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();
Эта строка дает исключение.




leggiObj.readObject().getClass().equals(DatiProgresso.class) - здесь вы читаете свой объект из потока данных. В следующей строке вы пытаетесь прочитать второй объект из потока. Если другого объекта нет, то поток терпит неудачу.
@Freder Это означает, что это был EOFException, и вы должны были сказать об этом в своем вопросе.
Выбрасывает какие
IOException? Трассировки стека?