2011-07-15 8 views
0

私はアンドロイドの内部ストレージにマップを保存しようとしています。内部ストレージに読み書きしていないandroid

マイコード:私は何の問題が表示されていないデバッグ中

private void saveFavorite(){ 
    LinkedHashMap<String, LinkedList<MyCustomObject>> favorites = new LinkedHashMap<String, LinkedList<MyCustomObject>>(); 

    try{ 
     InputStream file = openFileInput(PATH); 
     BufferedInputStream buffer = new BufferedInputStream(file); 
     ObjectInput input = new ObjectInputStream (buffer); 
     try{ 
      Object o = input.readObject(); 
      if(o instanceof LinkedHashMap<?, ?>) 
       favorites = (LinkedHashMap<String, LinkedList<MyCustomObject>>)o; 
     } 
     finally{ 
      input.close(); 
     } 
    } 
    catch(ClassNotFoundException ex){ 
    } 
    catch(IOException ex){ 
    } 

    String favoriteName = "asd"; 


    favorites.put(favoriteName, myobject); 


    FileOutputStream fos; 
    try { 
     fos = openFileOutput(PATH, MODE_APPEND); 
     BufferedOutputStream buffer = new BufferedOutputStream(fos); 
     ObjectOutput output = new ObjectOutputStream(buffer); 
     try{ 
      output.writeObject(favorites); 
     }finally{ 
      output.close(); 
     } 
    }catch(IOException ex){ 
    } 
} 

MyCustomObjectはSerializableを

を実装しています。空のマップを読み込んだ後、値を使ってマップを書き込むようですが、もう一度それを読むと地図は空です。

お願いします。

UPDATE: 私は /内部/データ/データ/ my_project_package_structure /ファイルの私のvar PATHのように呼ばれるファイルを発見しました。私は保存メソッドを呼び出すたびにサイズが大きくなっているので、よく書いていると思いますが、私が間違っていることはわかりません。

+0

であるべき次のことを行うことを検討してください:新しい答えにあなたのソリューションの編集を移動します1.。 2.答えを記入してください。 3. 2日後に誰もより正確で徹底的な答えを書いていない場合は、戻って答えを受け入れます。 – thegrinner

答えて

0
try { 
    **fos = openFileOutput(PATH, MODE_APPEND);** 
    BufferedOutputStream buffer = new BufferedOutputStream(fos); 

**fos = openFileOutput(PATH, MODE_PRIVATE);** 
関連する問題