0

RSS を JSON ファイルに保存しようとしていますが、新しいレコードは常に前のレコードを上書きします。複数の RSS レコードを 1 つのファイルに保存するにはどうすればよいですか?

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_WORLD_WRITEABLE」の代わりに「MODE_APPEND」を使用してください

Android ドキュメントから:「ファイル作成モード: openFileOutput(String, int) で使用する場合、ファイルが既に存在する場合は、既存のファイルを消去する代わりに、既存のファイルの最後にデータを書き込みます。」

余談ですが、Android のドキュメントでは、「MODE_WORLD_WRITEABLE」の使用について次のように警告されています。

"この定数は、API レベル 17 で非推奨になりました。誰でも書き込み可能なファイルを作成することは非常に危険であり、アプリケーションにセキュリティ ホールを引き起こす可能性があります。強くお勧めしません。代わりに、アプリケーションは、ContentProvider、BroadcastReceiver、およびサービス。バックアップや復元を行う場合など、このアクセス モードがファイルに残るという保証はありません。ファイル作成モード: 作成されたファイルへの書き込みアクセスを他のすべてのアプリケーションに許可します。 "

于 2013-06-07T19:04:12.797 に答える