私の Android アプリケーションでは、次のような Map 構造を保存しようとしています:Map<String, Map<String, String>>
内部ストレージを使用しています。の使用を検討しましたSharedPreferences
が、ご存知のように、これはプリミティブ データ型を格納する場合にのみ機能します。を使用しようとしましFileOutputStream
たが、バイト単位でしか書き込めません...どうにかしてハッシュマップをシリアル化してからファイルに書き込む必要がありますか?
http://developer.android.com/guide/topics/data/data-storage.html#filesInternalを読んでみましたが、解決策が見つからないようです。
これが私がやろうとしていることの例です:
private void storeEventParametersInternal(Context context, String eventId, Map<String, String> eventDetails){
Map<String,Map<String,String>> eventStorage = new HashMap<String,Map<String,String>>();
Map<String, String> eventData = new HashMap<String, String>();
String REQUEST_ID_KEY = randomString(16);
. //eventData.put...
. //eventData.put...
eventStorage.put(REQUEST_ID_KEY, eventData);
FileOutputStream fos = context.openFileOutput(EVENT_FILENAME, Context.MODE_PRIVATE);
fos.write(eventStorage) //This is wrong but I need to write to file for later access..
}
このタイプのデータ構造を Android アプリに内部的に保存するための最良の方法は何ですか? これがばかげた質問のように思われる場合は申し訳ありませんが、私はAndroidに非常に慣れていません。前もって感謝します。