gpt4 book ai didi

java - Android内部存储: File is empty as soon as it has been read

转载 作者:行者123 更新时间:2023-12-01 17:42:59 25 4
gpt4 key购买 nike

所以我尝试将 HashMap 作为 JSON 文件保存到应用程序的内部存储中。这效果很好,正如我在设备文件资源管理器中看到的那样,所有内容都已正确保存。然后,当我重新启动应用程序并从文件中读取时,它也可以工作,但在这一次读取之后,文件为空。当您保存空 JSON 对象时,完全是空的,甚至没有一些“{}”。

public void writeNetworks(FileOutputStream fos) {
Log.d(TAG, "writeNetworks");

Gson gson = new GsonBuilder().create();
String json = gson.toJson(networks);

Log.d(TAG, json);

PrintWriter out = new PrintWriter(new OutputStreamWriter(fos));
out.println(json);
out.flush();
out.close();
}

public void readNetworks(FileInputStream fis) {
Log.d(TAG, "readNetworks");

try {
BufferedReader in = new BufferedReader(new InputStreamReader(fis));
StringBuilder json = new StringBuilder();
String line;
while((line = in.readLine()) != null ) {
json.append(line);
}
in.close();

Log.d(TAG, json.toString());

Gson gson = new GsonBuilder().create();
Type typeOfHashMap = new TypeToken<Map<String, WrcUser>>() { }.getType();
networks = gson.fromJson(json.toString(), typeOfHashMap);
} catch (IOException e) {
e.printStackTrace();
}
}

有什么想法吗?

最佳答案

我实际上找到了一种让它工作的方法...我现在在 Activity 的 onStop() 方法中调用 writeNetowrks(..) 。到目前为止,它似乎工作一致。

关于java - Android内部存储: File is empty as soon as it has been read,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60916761/

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