这里是Java和IntelliJ新手。很抱歉,如果已经回答了这个问题,但我似乎找不到答案。
我的项目结构如下所示:
我正在尝试弄清楚如何以单个字符串读取高亮显示的storedQueries.txt文件的内容。这必须很简单,我尝试了很多涉及getClass的方法,等等,但是到目前为止没有任何效果。希望得到任何指导,谢谢。
答案 0 :(得分:1)
您可以使用当前的类加载器读取文件,但是在此之前,您需要对结构进行一些整理。当您使用ClassLoader读取文件时,默认情况下,它会查找它所属的同一软件包。
第1步:创建新软件包com.pe.queries
步骤2:在上述包中创建类Package-Info.java
步骤3:在resources
下以resources/com/pe/queries
的形式创建新的嵌套目录,并将文件移至该目录。
第4步:最后,您应该能够将文件读取为
Package-Info.class.getResource("storedQueries.txt");
答案 1 :(得分:0)
getClass().getResource("/resources/etc.txt")
将资源文件夹放入目标
答案 2 :(得分:0)
有两种获取资源的方法:
两种方式都可以使用getClass().getResource(path)
构造。
相对路径:
/
开头:
"/etc.txt"
文件etc.txt存储在资源目录中的位置。以图片为例,您的路径为:/queries/storedQueries.txt
.getResource(path)
的类的包相同,例如: resources/com/pe/queries/etc.txt
您的路径不应包含开始的'/':
getClass().getResource("com/pe/queries/etc.txt")
这是因为,当您的构建系统(您的maven)将构建项目时,如果将其存储在资源目录的root
中,或者将其存储为{{1 }},在jar resources/com/pe/queries/etc.txt
内创建并将其放入其中。
对不起,我的英语,希望我能帮助您了解它的工作原理。
P.S。我写了这篇文章,是俄文的,但是您可以通过Google-transate进行翻译(我尝试过并且很容易理解),里面还有更多的示例和解释。
Article about resources on Russian
祝你好运!