我想创建一个程序,在TextField
中读取用户输入并将其放入保存到文件中的ArrayList
。然后,按钮将允许用户通过输入他们正在寻找的动物的名称从ArrayList
删除对象(包含从中导入动物的名称,ID和国家/地区)。这是按下删除按钮时调用的方法的代码。我得到FileNotFoundException
,我不明白为什么。你能帮帮我吗?
public void DeleteLine(String fileName,String strSearched){
try {
ObjectInputStream os = new ObjectInputStream(new FileInputStream(fileName));
ObjectInputStream osTMP = new ObjectInputStream(new FileInputStream("ZooTMP.txt"));
animal = (ArrayList<ANIMAL>) os.readObject();
System.out.println("Original contents of animal: ");
Iterator itr = animal.iterator();
while(itr.hasNext()) {
Object ANIMAL = itr.next();
if (ANIMAL.contains(strSearched) ) {
itr.remove();
}
}
System.out.println();
os.close();
osTMP.close();
} catch (FileNotFoundException ex) {
System.out.println("Can't find the file Zoo.txt");
} catch (IOException ex) {
System.out.println("The file Zoo.txt has already been closed");
} catch (ClassNotFoundException ex) {
System.out.printf("Class is missing: %s\n",ex);
}
}
这是ANIMAL界面:
package GUI_Try;
import java.io.*;
class ANIMAL implements Serializable {
String name, ID, country;
public ANIMAL(String name, String ID, String country){
this.name = name;
this.ID = ID;
this.country = country;
}
}
答案 0 :(得分:0)
首先,您确认该文件是在项目所在的同一目录中创建的吗?任何子目录都必须包含在文件名中。
其次,(可能不相关)但您似乎不会在代码中的任何位置使用osTMP
,除了打开和关闭流。也许这是导致FileNotFoundException
的文件?有关项目文件中文件体系结构的一些信息会很有帮助。您可以一次注释掉一行或另一行,并找出导致此异常的文件,这也有助于解决问题。