我已经在Intellij中创建了一个目录结构如下的新模块:
新模块-> src->主-> java->配置->资源-> ConfigResources.java
新模块-> src-> main->资源-> config->资源-> config.properties
在构建intellij项目时,我看到资源文件已正确复制到“ out / production / resources”目录
现在,当我尝试通过以下代码访问此文件时,它返回null:
ConfigResources.class.getResourceAsStream("config.properties")
根据我从其他几篇文章中所读到的内容,以上代码尝试从资源文件夹中的同一路径加载文件,但对我而言不起作用。
我还尝试了什么:
ClassLoader.class.getResource()
如何访问资源文件? (这是一个gradle项目,使用Java 11) 我需要在intellij中设置任何配置还是需要在build.gradle文件中包含某些内容?
答案 0 :(得分:0)
List<Document> docs = new ArrayList<>();
JSONParser jsonParser = new JSONParser();
ClassLoader classloader = Thread.currentThread().getContextClassLoader();
InputStream is = classloader.getResourceAsStream(collectionName+".json");
try (Reader reader = new InputStreamReader(is)) {
// Read JSON file
Object obj = jsonParser.parse(reader);
JSONArray documentArray = (JSONArray) obj;
// Iterate over documentArray
documentArray.forEach(doc -> {
Document document = Document.parse(doc.toString());
docs.add(document);
});
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
return docs;
我也面临着同样的问题,但是我这样解决了从资源中获取数据的问题
答案 1 :(得分:0)
我遇到了同样的问题。尝试在资源目录中添加一个额外的文件夹“foo”。听起来有点混乱,但确实有效。
new-module -> src -> main -> resources -> config -> resources -> foo -> config.properties
ConfigResources.class.getClassLoader().getResourceAsStream(foo/config.properties);