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 기기 관리자 -> 파일 관리자 -> 데이터에서 파일을 찾을 수 없다는 것입니다. 데이터를 클릭하면 패키지가 표시되지만 대신 비어 있습니다. 데이터를 저장하고 나중에 처리하는 데 사용하고 싶습니다. 누군가 제발 도와 줄 수 있니? 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

관련 문제