[Android] アプリ内でファイルを保存する FileOutputStream, FileInputStream

ファイルをアプリのローカルストレージに保存したり読み出したい場合は、FileOutputStream、  FileInputStreamを使うと簡単です。
 
下の例は、 EditText で入力した文字列を testfile.txt というファイルに入れて保存して、アプリを再起動してボタンをタップしてそのファイルから読み出す例です。

inoutstream_0“test” の文字を入力
inoutstream_1SAVE FILEで保存
inoutstream_2b READ FILEで読出す


 

Android Studio 2.2.2
Android 7.0
sponsored link

FileOutputStream , FileInputStream

 

FileOutputStream

 
保存では FileOutputStream のインスタンスを openFileOutput()メソッドで取得

第一引数はファイル名のみの指定です。
実際の保存場所は /data/data/package_name/files 以下にあります
adb shell コマンドではセキュリティーでロックされていてみえませんが
run-as を使えば見ることはできます

 
第二引数のモードは

  • MODE_APPEND
    • 追加で書き込み
  • MODE_PRIVATE
    • このアプリのみアクセス許可

MODE_WORLD_READABLE / MODE_WORLD_WRITABLE
というモードもありましたが
API level 17 で Deprecated (非推奨)となりました

書き込みは write()メソッドを使います
 

FileInputStream

 
読み出しでは
FileInputStream のインスタンスを openFileInput()メソッドで取得

 
読み出しは read() を使います

 
MainActivity.java

 
activity_main.xml

 
実際に保存したファイルを確認するときは
エミュレータでは:
DDMS を使います
Android Device Monitor, DDMS で確認

/package_name/files/以下に testfile.txt がありました。

スクリーンショット 2016-05-09 15.57.38
 
実機では
run-as [package name] をコマンドで打ち込んで確認できます
adb, run-as でローカルストレージ内をのぞく
 
関連記事:

Reference:
Context