我在/src/main/resources
中有一个JSON文件,我试图通过以下方式进行读取:
private List<String> readContextFromFile(String file) {
List<String> context = new ArrayList<>();
try {
InputStream in = getClass().getClassLoader().getResourceAsStream(file);
Map<String, ArrayList> input = objectMapper.readValue(in, HashMap.class);
context = input.get("@context");
} catch (IOException e) {
LOGGER.error("Error reading value {}", e.getMessage());
}
return context;
}
但是,InputStream为null。
这是我传递的文件路径:/resources/context.json
我在做什么错了?
答案 0 :(得分:1)
1)/src/main/resources
代表源代码,而不是运行时代码。
编译的类和已处理的资源在target/classes
文件夹中而不是src
文件夹中结束。
2)关于:
这是我传递的文件路径:
/resources/context.json
为什么要传递resources
令牌?这是一个Maven / Gradle目录,在运行时将不会检索该目录。在运行时只能使用其中包含的内容。
您要传递的是/context.json
。