2012-01-25 9 views
0

私は、Androidを実行しているext3ベースのフラッシュディスクに保存したいC++マップベースの構造を持っています。構造は次のようになります。ディスクにC++マップ構造を保存する

class kvBucket { 
    ... 
    map<string, kvBucket*> buckets; 
    map<string, string> keyPairs; 
    ... 
} 
class kvTree { 
    ... 
    kvBucket base; 
    ... 
} 

「ベース」オブジェクト(数百エントリ程度)を保存するには良い方法はありますか? AndroidのJNIを介してアクセスする

  1. データベース(sqlite3の)
  2. オブジェクトのシリアライズ(ブースト)XMLやJSONファイルとして保存
  3. 配慮が、それはする必要があるということである
  4. 何か他のもの

ワンクラッシュプルーフであるため、ディスクに書き込んでいる間に誰かがプラグを抜くと、正常に回復する必要があります。

答えて

0

これらのソリューションのいずれかが優れています。

クラッシュ防止が必要な場合は、一時ファイルへの書き込みを行い、書き込みが完了した後に元のファイルのみを置き換えます。最悪のシナリオは、2つの有効なファイルがあることです。

関連する問題