最终编辑:现在代码看起来像这样
InputStream is = getClass().getResourceAsStream("/static/master-key.txt");
String masterKey = null;
Scanner scanner = new Scanner(is);
masterKey = scanner.nextLine();
System.out.println("the master key is " + masterKey);
原始帖子
从resources
文件夹读取txt文件时出现问题。
项目结构如下所示:
当我调用以下代码时
System.out.println(getClass().getClassLoader().getResource("static/master-key.txt").getPath());
File mkFile = new File(getClass().getClassLoader().getResource("static/master-key.txt").getPath());
这就是发生的事情
/D:/Dropbox/Coding/Intellij%20IDEA/TishenkoKPO/target/classes/static/master-key.txt
java.io.FileNotFoundException:
D:\Dropbox\Coding\Intellij%20IDEA\TishenkoKPO\target\classes\static\master-key.txt (System cannot find the specified path)
我用谷歌搜索了很多,但不知道为什么会这样
编辑1:按照社区建议重新构建的代码的一部分(将文件作为资源使用)
InputStream is = getClass().getResourceAsStream("static/master-key.txt");
String masterKey = null;
Scanner scanner = new Scanner(is);
masterKey = scanner.nextLine();
System.out.println("the master key is " + masterKey); //successfuly outputs the first line if exists
编辑2:资源路径应以/
开头
InputStream is = getClass().getResourceAsStream("/static/master-key.txt");
发布于 2018-06-03 14:52:32
InputStream is = getClass().getResourceAsStream("static/master-key.txt");
这是搜索与调用它的类的包/目录相关的资源。很可能实际上可以找到相对于应用程序结构根的资源。要做到这一点,请添加一个前导/
,如下所示。
InputStream is = getClass().getResourceAsStream("/static/master-key.txt");
发布于 2018-06-03 08:55:54
尝尝这个
getResource("resources\static\master-key.txt").getPath());
如果你的目标是一个路径,使用'\‘而不是'/’。你可以试一试
YourClass.class.getResourceAsStream("resources\static\master-key.txt");
或
YourClass.class.getResourceAsStream("static\master-key.txt");
https://stackoverflow.com/questions/50662313
复制相似问题