Я искал везде, и я пробовал разные решения, но результат пуст/пуст/{}. Можно ли сохранить LinkedHashMap, чтобы его можно было найти позже?Как сохранить LinkedHashMap <Integer, Integer>?
//Save HashMap to Internal Storage
public void SaveHashMapToInternalStorage(String SavedData, LinkedHashMap<Integer, Integer> linkedHashMapList)
throws FileNotFoundException, IOException {
try{
File fileOne = new File(SavedData);
FileOutputStream fileOutputStream = new FileOutputStream(fileOne);
ObjectOutputStream oos = new ObjectOutputStream(fileOutputStream);
oos.writeObject(linkedHashMapList);
oos.flush();
oos.close();
fileOutputStream.close();
}catch(Exception e){}
}
//Load HashMap from Internal Storage
public LinkedHashMap<Integer, Integer> LoadHashMapFromInternalStorage(String SavedData) throws IOException {
LinkedHashMap<Integer, Integer> linkedHashMapList = new LinkedHashMap<Integer, Integer>();
try{
File toRead = new File(SavedData);
FileInputStream fileInputStream = new FileInputStream(toRead);
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
linkedHashMapList = (LinkedHashMap<Integer, Integer>)objectInputStream.readObject();
objectInputStream.close();
fileInputStream.close();
for(Entry<Integer, Integer> m :linkedHashMapList.entrySet()){
linkedHashMapList.put(m.getKey(), m.getValue());
}
}catch(Exception e){}
return linkedHashMapList;
}
Может кто-нибудь, пожалуйста, помогите мне?
Большое спасибо
Update:
Я поместил Тост в улове (Exception е), что он есть. В методе есть что-то не так.
Я пытался загрузить это в методе OnCreate:
FirstRunMethod = SharedPrefs.getBoolean("FIRST_RUN", false);
if (!FirstRunMethod) {
// do the thing for the first time
prefs_editor.putBoolean("FIRST_RUN", true);
prefs_editor.apply();
.......
.......
try {
SaveHashMapToInternalStorage("file.txt", PicResolution);
} catch (FileNotFoundException e) {);
} catch (IOException e) { }
}
PictureResWidthHashMap = LoadHashMapFromInternalStorage("file.txt");
....
.....
public LinkedHashMap<Integer, Integer> LoadHashMapFromInternalStorage(String SavedData) {
LinkedHashMap<Integer, Integer> linkedHashMapLIST = new LinkedHashMap<Integer, Integer>();
try{
File toRead = new File(SavedData);
FileInputStream fileInputStream = new FileInputStream(toRead);
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
linkedHashMapLIST = (LinkedHashMap<Integer, Integer>)objectInputStream.readObject();
objectInputStream.close();
fileInputStream.close();
for(Entry<Integer, Integer> m :linkedHashMapLIST.entrySet()){
linkedHashMapLIST.put(m.getKey(), m.getValue());
}
}catch(Exception e){Toast.makeText(getBaseContext(), "CANT LOAD ERROR", Toast.LENGTH_LONG).show(); }
return linkedHashMapLIST;
}
Почему он работал на другого человека, но он не работает для меня? Для меня это вообще не имеет смысла.
Где именно вы получите NullPointerException? – Thilo
Я пытаюсь загрузить этот LinkedHashMapList = LoadHashMapFromInternalStorage (LINKHasMapString); Результатом является {}, который вызывает nullpointerexcepter другим моим методам. Спасибо –
Вы уверены, что в файле нет пустой карты? А что такое цикл в методе Load, который должен делать? – Thilo