ファイルへの書き込みは、openFileOutputでファイルストリームを取得し、JavaのFileOutputStreamなどで書き込んでいく・・・。
openFileOutputは、Contextクラスのメソッドだが、ActivityはContextを継承しているのでそのまま使える・・・。
activity_main.xmlに、
EditTextを2つ配置・・・。
上にはテキストファイル名、下にテキストファイル本文を書く・・・。ちょっとした簡易メモ・・・。
下の本文は、android:inputType="textMultiLine"で複数行入力可能に・・・。
デフォルトだと、真ん中にキャレットがいるので、android:gravity="top"でキャレットを左上に・・・。
main.xmlのメニューは、
このようにして、
Write fileというアイテムのみ・・・。
これが選択されたら、ファイルを書き込む・・・。
MainActivity.javaでは、
Write fileが選択されたら、ファイル名と本文をEditTextから取得・・・。
filenameが空でなかったら、openFileOutputでFileOutputStreamを取得・・・。
そこにfilecontentを書き込む・・・。
このWrite fileを選択すると、書き込まれる・・・。
このローカルファイルは、"/data/data/<パッケージ名>/files/"の下に書き込まれるが、普通は権限が無いので見ることができない・・・。
今回は、run-asコマンドというのを使って、一時的にアプリユーザ権限になって、ファイルを参照する・・・。
[Android] adb, run-as コマンドでローカルストレージ内をのぞく
>adb shell shell@C5303:/ $ run-as com.bgstation0.android.sample.context_ shell@C5303:/data/data/com.bgstation0.android.sample.context_ $ ls cache files lib shell@C5303:/data/data/com.bgstation0.android.sample.context_ $ cd files shell@C5303:/data/data/com.bgstation0.android.sample.context_/files $ ls test1.txt ENDshell@C5303:/data/data/com.bgstation0.android.sample.context_/files $ cat test1.txt ABCDE XYZ ENDshell@C5303:/data/data/com.bgstation0.android.sample.context_/files $
確かにtest1.txtにABCDE, XYZ, ENDが書き込まれてる・・・。
Sample/android/Context/openFileOutput/src/Context/Context_ at master · bg1bgst333/Sample · GitHub