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

Read json file from project in JDeveloper - Oracle MAF project

我正在尝试将 json 文件读入用 JDeveloper 12c 编写的 Oracle MAF 项目。在这种项目中,我们有两个主要文件夹:ApplicationController 和ViewController。我的 java class 在 ApplicationController 文件夹中,我的资源也在 public_html 文件夹中。我尝试了所有在网上找到的方法,但似乎没有任何效果...

因此 java class 的根目录如下:\myProject\ApplicationController\adfmsrc\application\MyJavaClass.java

json 文件的根目录如下: \myProject\ApplicationController\public_html\json\myJsonFile.json

在我的 java class 中,我添加了如下函数,以便从项目中读取文件:

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 error on line : int size = is.available();

这意味着找不到该文件。 Utils class 是包含上述方法的 java class。

请帮我解决这个问题...

提前致谢。

我设法让它像这样工作:

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

我转到 JDeveloper 中的项目,右键单击它,然后选择 "Project Properties"。点击 "Compiler"。在标签为 "Copy File Types to Output Directory:" 的字段上,我添加了“.json”扩展名。

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

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