类似的问题涉及C:
驱动器上的文件,其中硬编码文件路径是可接受的答案。这个应用程序是移动的,硬编码文件路径是不切实际的。
我正在尝试通过扫描仪导入一个文本文件,其中包含一个字符串列表,每个 15 个字符,每行 1 个。很多行。文件名为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(未使用)
- 一个.txt
- b.txt(与导入时相同的错误
a.txt
,仅以下一行) - /images(文件夹,包含 icon.png)
文件夹中没有其他内容。我无法对文件路径进行硬编码,因为在不同的计算机上,它具有不同的驱动器名称,并且稍后将分布在不同的文件夹下。(在这里(学校),它在E:
驱动器上,在家里它是J:
驱动器,而在工作中它在G:
驱动器上。)
虽然我从现有错误中得到了帮助,但我需要在程序启动时导入它,而不仅仅是跳过它。该文件以其当前形式存在,没有它,程序将无法运行。
是什么导致了这个错误?我能做些什么来防止这种情况发生?