当前位置: 首页 > 知识库问答 >
问题:

如何将文件分配给InputStream?

宋琛
2023-03-14

以前,我从androidresourcesraw文件夹中读取了一个json文件,

InputStream inputStream = getResources().openRawResource(R.raw.jsonfile);

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

        int ctr;
        try {
            ctr = inputStream.read();
            while (ctr != -1) {
                byteArrayOutputStream.write(ctr);
                ctr = inputStream.read();
            }
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

        JSONObject jObject = null;
        try {
            jObject = new JSONObject(
                    byteArrayOutputStream.toString());
        } catch (JSONException e) {
            e.printStackTrace();
        }

        Gson g = new Gson();

        MyList responseData = g.fromJson(jObject.toString(), MyList.class);

        if (responseData.getPeopleList().size() == 0) {
            //do something
        }
File fileJson = new File(getActivity().getExternalFilesDir("/folderName"), "jsonfile.json");

InputStream inputStream = null;
try {
    inputStream = new FileInputStream(fileJson);
} catch (FileNotFoundException e) {
    e.printStackTrace();
}

但是现在responseData为null。请纠正我

错误日志是,

java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference

共有1个答案

谯阳伯
2023-03-14

步骤1:将文件放在您认为的Android/data/myappfolder/files/中。因此,您将拥有Android/data/myappfolder/files/jsonfile.json

步骤2:使用文件fileJson=new File(getActivity().getExternalFilesDir(null),“jsonfile.json”);

 类似资料:
  • 问题内容: 我试图将磁盘中的文件分配给FileField,但是出现此错误: AttributeError:’str’对象没有属性’open’ 我的python代码: 和我的models.py 预先感谢您的帮助 问题答案: Django使用它自己的文件类型(具有明显增强的功能)。无论如何,Django的文件类型就像装饰器一样工作,因此你可以简单地将其包装在现有文件对象周围,以满足Django API

  • 问题内容: 我正在使用React使用渲染多个数据。 如何禁用列表中的单击按钮? 这是我的代码: 使用不起作用…我认为我无法添加状态,因为有多个按钮。 问题答案: 您应该使用而不是ref,并且是的,您需要多个ref,一个数组应该很好 根据文档: React支持可以附加到任何组件的特殊属性。ref属性具有一个功能,并且在 安装或卸载组件后立即执行。 在HTML元素上使用ref属性时,会 接收基础DOM

  • 我在运行时通过“for循环”动态创建一个JTextFields数组。 我使用相同或等效的“for循环”将DocumentListener添加到每个文件中。在用户编辑这些JTextField的内容之后,应该执行的代码似乎是为每个JTextField/DocumentListener分别定义的。 问题:这不起作用,因为在用户操作之后执行的代码处于上一轮“for循环”结束时最后一次看到的状态。

  • 我正在使用GWT Java进行项目。我在谷歌应用程序引擎中将excel文件上传到blobstore中。我想从blobstore中读取excel文件。所以我必须将blobstore中的excel文件分配给FileInputStream。 例: 将excel文件从blobstore分配到FileInputStream的可能方法是什么?有什么帮助吗? 提前感谢

  • 我使用javascript构建SVG图形,然后将其插入到网页中。我想给这个动态创建的SVG分配一个样式表(来自外部.css文件),但我看到的带有样式表的SVG的示例在SVG元素之外有样式引用。 下面是构造SVG对象的javascript: 以及以后 后来我用图形填充SVG,现在我硬编码颜色,但我宁愿给它们类,让样式表控制颜色方案。没有什么好的理由让人必须深入我的javascript才能控制颜色。

  • 问题内容: 在这篇文章中,我遇到了一些巧妙的代码,可以将Karl的Iterator转换为Stream 。我不得不承认我不完全理解如何在以下代码中将lambda分配给该类型… 我决定编写自己的小型测试,以确保它能够编译和执行。 我的理解是lambda 充当了供应商功能。 Iterable不是FunctionalInterface,因此如何为其分配lambda? 问题答案: 是 不是 “作为一个功能”