2016-08-09 4 views
0

У меня возникли проблемы с просмотром данных из моего приложения. Я в основном запускаю приложение и хочу, чтобы данные сохранялись в текстовом файле. Мой код для сохранения:Сохранение данных приложения Android в телефоне

try { 
     FileOutputStream out = openFileOutput(FILENAME, Context.MODE_APPEND); 
     out.write (entry.getBytes()); 
     out.close(); 
     } catch (Exception e) { 
     e.printStackTrace(); 
     } 

В случае, если запись является строкой, содержащей данные, которые я хочу сохранить. Приложение работает нормально, и я могу просматривать данные в журналах. Проблема в том, что я не могу найти файл в Android Device Manager -> File Manager -> Data. Когда я нажимаю данные, он должен показывать мне пакет, но вместо этого он пуст. Я хочу сохранить данные и использовать их для последующей обработки. Может ли кто-нибудь помочь? TIA :)

Редактирование 1: Изменено для записи во внешнем хранилище. Однако это просто делает одну запись и больше не пишет.

FileOutputStream outputstream; 
      try { 
       file1 = new File(Environment.getExternalStorageDirectory(), "MyData"); 
       outputstream = new FileOutputStream(file1); 
       OutputStreamWriter oswriter = new OutputStreamWriter(outputstream); 
       BufferedWriter bwriter = new BufferedWriter (oswriter); 
       bwriter.write(entry); 
       bwriter.newLine(); 
       bwriter.close(); 
       outputstream.close(); 
      } catch (Exception e) { 
         e.printStackTrace(); 
        } 
+0

Вы пробовали читать из файла с помощью FileInputStream и проверять его? –

+0

@CommonsWare прав, я думаю, поскольку он находится во внутреннем хранилище, вам нужно укорениться, вы написали в файле на самом деле, просто попробуйте его прочитать. –

+0

Спасибо, Эрфан. Я думаю, что это ведет к экономии внутреннего хранилища. Есть ли другой способ просмотра данных без использования телефона? – KDK

ответ

0

Местоположение, которое вы сохраняете, возможно, доступно только вашему приложению. см. docs. Из документов:

Внутренняя память:

  • Это всегда доступно.

  • Файлы, сохраненные здесь, доступны только для вашего приложения.

  • Когда пользователь удаляет ваше приложение, система удаляет все файлы вашего приложения из внутреннего хранилища.

Файл не будет показан в файле-проводнике. Вы все еще можете прочитать его в своем приложении.

+0

Благодарим вас за помощь. Я думаю, именно поэтому я не могу видеть данные. – KDK

0

Я предполагаю, что вы тестируете это на устройстве. У вас нет произвольного доступа к /data/ на производственном оборудовании, за исключением, возможно, на корневых устройствах. Любой тест на эмуляторе или используйте adb shell run-as для доступа к вашей части приложения internal storage из командной строки.

+0

Спасибо за быстрый ответ. Я тестирую его на реальном устройстве и его не укоренилось. Итак, я думаю, что это проблема.Есть ли способ включить «приложение adb shell run-as» в самом приложении, чтобы я мог просто запускать его на своем мобильном телефоне где угодно? – KDK

+0

@KDK: Нет, и это не имеет большого смысла. Вы можете создать резервную копию своего приложения, чтобы сделать копию данных на [внешнем хранилище] (http://commonsware.com/blog/2014/04/08/storage-situation-external-storage.html) , который доступен. – CommonsWare