同様の質問は、C:
ドライブ上のファイルを扱います。ファイルパスをハードコーディングすることは許容できる答えです。このアプリケーションはモバイルであり、ファイルパスをハードコーディングすることは実用的ではありません。
スキャナーを介してテキストファイルをインポートしようとしています。このファイルには、1行に1つずつ、各15文字の文字列のリストが含まれています。たくさんの行。ファイル名はa.txt
です。
私はそれを使用して呼び出す
File data = new File("a.txt");
Scanner in = new Scanner(data);
異なるオブジェクト名を使用して、以下の行を「b.txt」で繰り返しました。
ただし、プログラムをビルドすると、次のエラーログが表示されます(Jcreator IDEを使用)。
--------------------Configuration: <Default>--------------------
E:\Simple Encryption\Simple_Encryption.java:17: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown
Scanner in = new Scanner(data);
^
E:\Simple Encryption\Simple_Encryption.java:18: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown
Scanner numsIn = new Scanner(nums);
^
2 errors
Process completed.
プログラムはE:/Simple Encryption/
、次のファイルとフォルダを含むフォルダにあります。
- Simple_Encryption.java
- Simple_Encryption.class
- lock.png(未使用)
- a.txt
- b.txt(インポート時と同じエラー
a.txt
、1行下) - / images(フォルダー、icon.pngを含む)
フォルダには他に何もありません。コンピュータが異なればドライブ名も異なり、後で別のフォルダに配布されるため、ファイルパスをハードコーディングできません。(ここ(学校)では、E:
ドライブ上にあり、自宅ではJ:
ドライブ上にあり、職場ではG:
ドライブ上にあります。)
私は既存のエラーから助けを得ましたが、プログラムの起動時にこれをインポートする必要があり、単にスキップするだけではありません。ファイルは現在の形式で存在し、プログラムはそれなしでは機能できません。
このエラーの原因は何ですか?そして、これを防ぐために私は何ができますか?