ユーザ入力をTextField
に読み込み、ArrayList
をファイルに保存するプログラムを作成したかったのですが、次に、ボタンを使用すると、探している動物の名前を入力してArrayList
からオブジェクト(名前、ID、動物の輸入国を含む)を削除できます。これは、削除ボタンが押されたときに呼び出されるメソッドのコードです。私はFileNotFoundException
を得て、私は理由を理解していません。助けてくれませんか?ArrayListからオブジェクトを印刷するとファイルが見つかりません
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);
}
}
これは、インターフェイスの動物である:
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;
}
}
'fileName'があなたのプログラムを起動している場所の作業ディレクトリにあるファイルを指していることを確認してください。 –
FileNotFoundExceptionのメッセージは何ですか?ファイル名は絶対パスか、作業ディレクトリにありますか?それは存在しますか?ファイル名を表示または記録し、そのファイルが存在するかどうかをテストするデバッグコードを追加することを検討してください。 'boolean isExtant = new File(fileName).exists()' –
ファイルからデータをロードするときのようです。正しく読み込まれ、すべてが読み込まれます。しかし、私は選択したディレクトリ内のファイルを見つけることができません。私は他のどこでもそれを見つけることができません。 FileNotFoundExceptionは未使用の 'osTMP'によって引き起こされました。しかし、私はまだこのファイルがどこにあるのだろうと思っています。 –