[Android]内部ストレージのファイルに読み書きを行う | 妄想プログラマのらくがき帳

2013年1月7日月曜日

[Android]内部ストレージのファイルに読み書きを行う

Androidアプリのファイル保存先の一つに内部ストレージがあります。
内部ストレージの特徴として以下の3点が挙げられます。
  • 常に使用可能
  • ファイルはアプリのprivate領域に保存される
  • 保存したファイルはアプリのアンインストール時に削除される
通常、アプリのみで使用するようなデータ(他のアプリから使用したりしないデータ)は
内部ストレージに保存するようです。

内部ストレージにファイルを作成し、データを保存する

内部ストレージにファイルを作成し、データを書き込むコードは以下のようになります。
FileOutputStream outputStream;

// ※以下、例外処理は省略

// 内部ストレージにファイルを作成し、書き込む。
outputStream = openFileOutput("myfile.txt", Context.MODE_PRIVATE);
outputStream.write("test".getBytes());

// ちなみにDDMSで確認したところ、確認時の環境下では
// "/data/data/[パッケージ名]/files/myfile.txt"
// に書き込まれた。

outputStream.close();
openFileOutput()でoutputStreamを直接取得してデータを書き込む方法の他に、
getFilesDir()を使って内部ストレージのルートディレクトリのFileオブジェクトを取得し、
そのFileオブジェクトを使ってデータを書き込む方法があります。

内部ストレージに保存したファイルからデータを読み込む

ファイルからデータを読み込むコードは以下のようになります。
FileInputStream inputStream;
byte[] buffer = new byte[256];

// ※以下、例外処理は省略

inputStream = openFileInput(FILE_NAME);
inputStream.read(buffer);

String data = new String(buffer, "UTF-8");

inputStream.close();
こちらも同様にgetFilesDir()からFileオブジェクトを取得し、それを利用する方法があります。

0 件のコメント:

コメントを投稿