1

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

请在这件事上给予我帮助...

提前致谢。

4

1 回答 1

3

我设法使它像这样工作:

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

我在 JDeveloper 中进入项目,右键单击它,然后选择“项目属性”。点击“编译器”。在标签为“将文件类型复制到输出目录:”的字段上,我添加了“.json”扩展名。

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

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

于 2015-12-18T09:42:28.417 回答