Android: файлы, сохраненные внутри getFilesDir (), исчезают после перезапуска приложения - PullRequest
0 голосов
/ 13 февраля 2020

Я хочу сохранить файл в определенном для приложения c хранилище, как показано в документации :

String filename = "myfile.txt";
String fileContents = "Hello world!";
try (FileOutputStream fos = context.openFileOutput(filename, Context.MODE_PRIVATE)) {
    fos.write(fileContents.toByteArray());
}

К сожалению, каждый раз, когда я перезапускаю приложение, все данные теряются .

Как предотвратить удаление данных?

Обратите внимание, что я не заинтересован в использовании SharedPreferences / External Storage / Database. Android Студия 3.5.3.

1 Ответ

0 голосов
/ 13 февраля 2020

Вам нужно закрыть файл, как только вы закончите, используя его. В противном случае он не сохраняется на диске, а только в памяти. Вот почему, когда вы «закрываете» приложение и начинаете все сначала, его больше нет.

FileOutputStream fos = context.openFileOutput(filename, Context.MODE_PRIVATE);
    try  {
        fos.write(fileContents.toByteArray());
    } catch (IOException e) {
      e.printStackTrace();
    } finally{
       try{
       if (fos!=null){
          fos.flush();
          fos.close();
        }
       } catch( Exception e) {
         e.printStackTrace();
       }
    }
...