我正在尝试将json文件读入用JDeveloper 12c编写的Oracle MAF项目。在这种项目中,我们有两个主要文件夹:ApplicationController和ViewController。我的java类在ApplicationController文件夹中,我的资源也在public_html文件夹中。我尝试了在网上找到的所有东西,但似乎没有什么对我有用......
所以java类的根源是这样的: \ myProject \ ApplicationController \ adfmsrc \ application \ MyJavaClass.java
json文件的根源如下: 的 \ myProject的\ ApplicationController中\的public_html \ JSON \ myJsonFile.json
在我的java类中,我添加了一个类似下面的函数,以便从项目中读取文件:
public static String loadJSONFromProject(String filename) {
String json = "";
try {
InputStream is = Utils.class.getResourceAsStream(filename);
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
json = new String(buffer, "UTF-8");
} catch (Exception ex) {
ex.printStackTrace();
}
return json;
}
我尝试调用方法的方式是这样的:
Utils.loadJSONFromProject("/json/myJsonFile.json");
Utils.loadJSONFromProject("json/myJsonFile.json");
Utils.loadJSONFromProject("../json/myJsonFile.json");
当我运行项目时,我得到了一个
行上的java.lang.NullPointerException错误:int size = is.available();
这意味着找不到该文件。 Utils类是包含上面方法的java类。
请帮帮我...
提前致谢。
答案 0 :(得分:2)
我设法让它像这样工作:
在 \ myProject \ ApplicationController \ adfmsrc 文件夹中,我添加了一个名为" json"的新文件夹。在哪里我添加了我的文件。
我去JDeveloper项目,右键单击它,然后选择" Project Properties"。单击"编译器"。在具有标签"将文件类型复制到输出目录的字段上:"我添加了" .json"扩展
之后,我调用了上面的函数,如下所示: Utils.loadJSONFromProject(" ../ json / myJsonFile.json"); ,它就像一个魅力。
谢谢,我希望我的回答对其他人也有帮助。