【发布时间】:2015-08-19 20:59:44
【问题描述】:
我正在尝试在构建 JAR 后读取 resource 文件夹的内容。资源文件夹在 IDE 设置 (IntelliJ) 中标记为 source。
我尝试了以下方法:
InputStream input = getClass().getResourceAsStream("../objectLocation.json");
JsonReader jsonReader = new JsonReader(new InputStreamReader(input));
我也试过了:
JsonReader jsonReader = new JsonReader(new FileReader("../resources/objectLocation.json"));
这两种方法都会导致:
结果:
java.io.FileNotFoundException: com/layers/resources/objectLocation.json (No such file or directory)
文件结构:
src
-com.layers -> myClasses
-resources -> JSON
编辑:
InputStream input = getClass().getResourceAsStream("objectLocation.json");
JsonReader jsonReader = new JsonReader(new InputStreamReader(input));
结果为:
java.lang.NullPointerException
【问题讨论】:
-
我认为您不需要“..”,因为您超出了源位置。尝试
InputStream input = getClass().getResourceAsStream("objectLocation.json");,如果它位于资源文件夹的子文件夹中而不是InputStream input = getClass().getResourceAsStream("<subfolder>/objectLocation.json"); -
这导致
java.lang.NullPointerException -
对不起,我错过了“/” ->
try .getResourceAsStream("/objectLocation.json"); -
试试 InputStream input = getClass().getResourceAsStream("./objectLocation.json");
-
这似乎已经解决了问题。
标签: java json intellij-idea resources gson