android - 如何将文件分配给 InputStream?

标签 android fileinputstream

之前我从 android resourcesraw 文件夹中读取了一个 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 步:将文件放在您认为的 Android/data/myappfolder/files/ 中。因此,您将拥有 Android/data/myappfolder/files/jsonfile.json

第 2 步:使用 File fileJson = new File(getActivity().getExternalFilesDir(null), "jsonfile.json");

关于android - 如何将文件分配给 InputStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50238743/

相关文章:

Android webview 适合所有内容到屏幕

android - 检查安装在系统凭证存储中的证书

java FileInputStream 找不到文件

java - InputStreamReader, FileInputStream 在中点开始解析文件而不是开始

安卓平板电脑模拟器

java - 在Android服务中触发语音识别

java - 访问 JobIntentService 内的类字段值时出现问题

java - 我应该如何在 Android 应用程序中保存应用程序数据?

java - ByteArrayInputStream 到 FileInputStream 而不将文件写入硬盘

java - Eclipse 从不同项目加载文件