如何将多个记录写入JSON

时间:2013-06-07 18:58:01

标签: android json file io

我正在尝试将一些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();
    }

1 个答案:

答案 0 :(得分:1)

使用'MODE_APPEND'代替'MODE_WORLD_WRITEABLE'

来自Android文档: “文件创建模式:与openFileOutput(String,int)一起使用,如果文件已经存在,则将数据写入现有文件的末尾,而不是擦除它。”

另外在旁注中,我想提一下Android文档警告“MODE_WORLD_WRITEABLE”的用法如下:

这个常量在API级别17中已被弃用。创建世界可写文件非常危险,可能会在应用程序中造成安全漏洞。强烈建议不要使用;相反,应用程序应使用更正式的交互机制作为ContentProvider,BroadcastReceiver和Service。无法保证此访问模式将保留在文件中,例如在进行备份和还原时。文件创建模式:允许所有其他应用程序对创建的文件具有写访问权限。