我正在尝试将一些rss保存到JSON文件中,但新记录总是会覆盖前一个。如何在一个文件中保存多个rss记录?
private void writeJSONtoFile(String jsnStr) {
FileOutputStream fos;
try {
fos = openFileOutput("json_local.xml", Context.MODE_WORLD_WRITEABLE);
fos.write(jsnStr.getBytes());
Log.i("json_convert", jsnStr);
fos.flush();
fos.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Log.i("Favorites", "" + jsnStr);
Toast.makeText(getApplicationContext(),
item_title + " добавлено в избранное",
Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:1)
使用'MODE_APPEND'代替'MODE_WORLD_WRITEABLE'
来自Android文档: “文件创建模式:与openFileOutput(String,int)一起使用,如果文件已经存在,则将数据写入现有文件的末尾,而不是擦除它。”
另外在旁注中,我想提一下Android文档警告“MODE_WORLD_WRITEABLE”的用法如下:
“这个常量在API级别17中已被弃用。创建世界可写文件非常危险,可能会在应用程序中造成安全漏洞。强烈建议不要使用;相反,应用程序应使用更正式的交互机制作为ContentProvider,BroadcastReceiver和Service。无法保证此访问模式将保留在文件中,例如在进行备份和还原时。文件创建模式:允许所有其他应用程序对创建的文件具有写访问权限。 “