Итак, я пытаюсь сохранить HashMap как файл JSON во внутреннем хранилище приложения. Это хорошо работает, как я вижу в проводнике файлов устройства, все сохраняется правильно. Когда я затем перезагружаю приложение и читаю из файла, оно также работает, НО после этого одноразового чтения файл пуст. Полностью пустой даже не некоторые "{}" при сохранении пустого JSON объекта.
public void writeNetworks(FileOutputStream fos) {
Log.d(TAG, "writeNetworks");
Gson gson = new GsonBuilder().create();
String json = gson.toJson(networks);
Log.d(TAG, json);
PrintWriter out = new PrintWriter(new OutputStreamWriter(fos));
out.println(json);
out.flush();
out.close();
}
public void readNetworks(FileInputStream fis) {
Log.d(TAG, "readNetworks");
try {
BufferedReader in = new BufferedReader(new InputStreamReader(fis));
StringBuilder json = new StringBuilder();
String line;
while((line = in.readLine()) != null ) {
json.append(line);
}
in.close();
Log.d(TAG, json.toString());
Gson gson = new GsonBuilder().create();
Type typeOfHashMap = new TypeToken<Map<String, WrcUser>>() { }.getType();
networks = gson.fromJson(json.toString(), typeOfHashMap);
} catch (IOException e) {
e.printStackTrace();
}
}
Есть идеи?