我目前正在Android中尝试一些东西,我正在尝试使用GSON将一些数据保存到JSON,并将新数据附加到同一个文件中。
假设这是第一次运行代码,数据被保存到名为test.json的文件中:
Gson gson = new GsonBuilder().setPrettyPrinting().create();
ArrayList<GSONObject> objects = new ArrayList<GSONObject>();
GSONObject obj = new GSONObject("sth", 1, 1345939200000);
objects.add(obj);
String json = gson.toJson(objects);
File file = new File(filePath + fileName);
FileWriter fileWriter = new FileWriter(file, true);
fileWriter.append(json);
fileWriter.close();
现在我已将其保存到文件中:
[ {
"something": "sth",
"id": 1,
"time": 1345939200000
} ]
稍后我想再次运行该应用程序,然后将一些新数据附加到同一个文件中,使其看起来像这样:
[ {
"sth": "sth",
"id": 1,
"time": 1345939200000
},
{
"sth": "sth2",
"id": 2,
"time": 1345939500000
} ]
我正在尝试保存此过程中使用的数据量和内存量,因此我宁愿避免先将文件解析到内存中,然后再将其写回文件。
有什么建议么?它真的不必是 GSON,只要是运行良好的东西。
编辑: 我已经根据 maaartinus 的一些建议解决了这个问题。你可以在这里看到它,如果你知道更好的解决方案,请贡献!