所以我开发了一个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)
但这不是我想要的,因为其他人必须在不更改代码的情况下运行它。
有什么建议/帮助吗? 我在网上到处查看并尝试了不同的方法,但它们不起作用。有些会使我的代码变得复杂,所以我就避免了。
提前致谢
最佳答案
如果您的配置文件旨在驻留在应用程序内部(它将部署在 jar 或 war 内),您不应该将其用作 File
,而应将其用作资源
。
假设它的相对路径是org/example/files/configuration.txt
(*)。您可以这样使用它:
InputStream is = getClass().getClassLoader().loadRessourceAsStream(
"org/example/files/configuration.txt");
Scanner readConfigurationFile = new Scanner(is);
(*) 如果您使用 maven,则可能是 src/main/resources/org/...
,如果您使用 src/org/...
ant 或 eclipse notive 编译器。
关于Java-netbeans 8.1 : Unrecognized file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35838763/