所以我开发了一个java应用程序并尝试读取该文件,我收到错误消息,说文件configuration.txt不存在。
这是文件阅读代码:
public static void main(String[] args) throws FileNotFoundException {
//reading configuration file
Scanner readConfigurationFile = new Scanner(new File("configuration.txt"));
是的,我确实包含了导入的必要IO库和实用程序。
我将文件移动到处(在包中,或在项目文件夹中,或bin文件夹中等)并继续测试,但它没有用。
它的唯一工作方式是当我将它移动到桌面时,我将文件的路径放在代码中的桌面上(所以C:\ User \ .... \ configuration.txt)
但这不是我想要的,因为其他人必须在不改变代码的情况下运行它。
任何建议/帮助? 我在网上到处寻找并尝试了不同的方法,但他们没有工作。有些会使我的代码复杂化,所以我只是避免了。
提前致谢
答案 0 :(得分:2)
如果您的配置文件要在应用程序内部存在(它将部署在jar或war中),您应该不将其用作File
而是{{1} }}
说它的相对路径是Resource
(*)。你可以这样使用它:
org/example/files/configuration.txt
(*)如果你使用maven,它可能是InputStream is = getClass().getClassLoader().loadRessourceAsStream(
"org/example/files/configuration.txt");
Scanner readConfigurationFile = new Scanner(is);
,如果你使用ant或eclipse notive编译器,它可能是src/main/resources/org/...
。
答案 1 :(得分:0)
如果将它放在包文件夹中,则需要相对路径。
以此结构为例
你可以访问它
new File("src/main/java/com/example/configuration.txt");
即使您从Main.java