2016-08-09 5 views
0

アプリからデータを表示できません。私は基本的にアプリケーションを実行しており、データをテキストファイルに保存したいと考えています。私の保存コードは次のとおりです。Androidアプリデータを電話に保存する

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

ここで、エントリは保存するデータを含む文字列です。アプリは正常に動作し、ログにデータを表示できます。問題は、Androidデバイスマネージャ - >ファイルマネージャ - >データでファイルを見つけることができないことです。データをクリックするとパッケージが表示されますが、代わりに空です。私はデータを保存し、後で処理するためにそれを使用したい。誰かが助けてくれますか? TIA :)

Edit1:代わりに外部ストレージに書き込むように変更しました。しかし、これは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

ありがとうErfan。私はその内部ストレージの節約がこれにつながっていると思います。電話を根絶せずにデータを表示する方法はありますか? – 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

関連する問題