从JDeveloper中的项目中读取json文件 - Oracle MAF项目

时间:2015-12-18 08:31:59

标签: java json file jdeveloper oracle-maf

我正在尝试将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类。

请帮帮我...

提前致谢。

1 个答案:

答案 0 :(得分:2)

我设法让它像这样工作:

\ myProject \ ApplicationController \ adfmsrc 文件夹中,我添加了一个名为" json"的新文件夹。在哪里我添加了我的文件。

我去JDeveloper项目,右键单击它,然后选择" Project Properties"。单击"编译器"。在具有标签"将文件类型复制到输出目录的字段上:"我添加了" .json"扩展

之后,我调用了上面的函数,如下所示: Utils.loadJSONFromProject(" ../ json / myJsonFile.json"); ,它就像一个魅力。

谢谢,我希望我的回答对其他人也有帮助。