基本上,我尝试覆盖以下JSON数据
{
"name" : "John Doe",
"gender" : "male",
"age" : "21"
}
我的目标是只取代年龄。所以我像下面这样使用FileOutputStream
JSONObject object = new JSONObject();
try {
object.put("age", "40");
} catch (JSONException e) {
//do smthng
}
String textToSave = object.toString();
try {
FileOutputStream fileOutputStream = openFileOutput("credentials.txt", MODE_PRIVATE);
fileOutputStream.write(textToSave.getBytes());
fileOutputStream.close();
intentActivity(MainMenu.class);
} catch (FileNotFoundException e) {
//do smthng
} catch (IOException e) {
//do smhtng
}
但是使用上面的代码,我意识到它完全删除了现有的credentials.txt
,这意味着我丢失了name
和gender
值。是否有任何方法可以取代age
?谢谢你
2条答案
按热度按时间sauutmhj1#
基本上你的问题的答案是否定的。你的行动方针是
1.将文件读入存储器,
1.修改内存中的内容
1.用修改的内容覆盖旧文件。
下面是关于如何修改文本文件的问题,并给出了很好的答案:Modifying existing file content in Java
56lgkhnf2#
我已经找到答案了。基本上我需要读取现有的JSON文件,然后替换现有的JSON对象值