gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 23:57:10 26 4
gpt4 key购买 nike

之前我从 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com