我一直在用java编写一个待办事项列表应用程序,每个待办事项都存储为类ToDo(我创建的)的一个对象。
ToDo 类是可序列化的,我正在使用 ObjectOutputStream 将对象写入文本文件。这样做后我关闭了 ObjectOutputStream。
我可能应该提到,目前我的文本文件是空的,因为其中没有待办事项,并且 GUI.items 是我的 GUI 类中的静态 ArrayList。
当我运行读取文件的方法时,会在行上抛出一个 IO 异常:
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
这是读取文件的方法:
public void read() {
try (FileInputStream fileInputStream = new FileInputStream("todo.txt")) {
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
GUI.items.clear();
while (objectInputStream.readObject() != null) {
GUI.items.add((ToDo) objectInputStream.readObject());
}
GUI.updateInterface();
objectInputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
//JOptionPane.showMessageDialog(null, "Error: To-Do List not found.\nPlease contact the developer.", "Error", JOptionPane.ERROR_MESSAGE);
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "Error: To-Do List could not be opened.\nPlease contact the developer.", "Error", JOptionPane.ERROR_MESSAGE);
} catch (ClassNotFoundException e) {
JOptionPane.showMessageDialog(null, "Error: To-Do List object type could not be found.\nPlease contact the developer.", "Error", JOptionPane.ERROR_MESSAGE);
}
}
为什么会引发此异常,我该如何解决?谢谢。