0

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

1 回答 1

1

使用“MODE_APPEND”而不是“MODE_WORLD_WRITEABLE”

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

另外,我想提一下,Android 文档对“MODE_WORLD_WRITEABLE”的使用发出警告,如下所示:

"此常量在 API 级别 17 中已弃用。创建全局可写文件非常危险,并且可能会导致应用程序中的安全漏洞。强烈建议不要这样做;相反,应用程序应使用更正式的交互机制,例如 ContentProvider、BroadcastReceiver 和服务。无法保证此访问模式将保留在文件上,例如在进行备份和还原时。文件创建模式:允许所有其他应用程序对创建的文件具有写访问权限。 "

于 2013-06-07T19:04:12.797 回答