Я пытаюсь сохранить карту во внутреннем хранилище 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
Во время отладки я не вижулюбая проблема.Кажется, что он читает пустую карту, затем записывает карту со значением, но когда я снова ее читаю, карта пуста.
Помогите, пожалуйста.
ОБНОВЛЕНИЕ: Iнашел внутри / data / data / my_project_package_structure / files / файл, который называется как моя переменная PATH.Он увеличивается в размере каждый раз, когда я вызываю мой метод сохранения, поэтому я думаю, что он пишет хорошо, но я не знаю, что я делаю неправильно.