Androidサンプル ローカルにファイルを保存する

Androidでローカルにファイルを保存する方法についてです。

ファイル書き込みを許可する

ファイルアクセスを許可するため、AndroidManifest.xmlに以下のタグを追加します。

      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
ローカルディレクトリを確認する

パースペクティブをDDMSにします。右側の画面でディレクトリ内をチェックできます。

ディレクトリを作成する

ローカルにファイルを保存したい場合、アクセスできる場所が限られていまして、

/data/data//files

にしかファイル入出力はできないようです。
例えば、パッケージ名がcom.java.yourdomainなら

/data/data/com.java.yourdomain/files

となります。パッケージ名はContextクラスのgetPackageNameで得られます。(ちなみにActivityはContextを継承している)

        String path = "/data/data/" + context_.getPackageName() + "/files";
        File file = new File(path);
        file.mkdir();
ファイルを作成する

FileOutputStreamを使います。(例外処理省略)

    public boolean writeFile(String fileName) throws IOException
    {
            FileOutputStream fileOutputStream = context_.openFileOutput(fileName, Context.MODE_PRIVATE);
            String buffer = "12345";
            fileOutputStream.write(buffer.getBytes());
    	return true;
    }
ファイルを読み込む

同様にFileInputStreamを使います。

    public boolean readFile(String fileName) throws IOException
    {
            FileInputStream fileInputStream = context_.openFileInput(fileName);
            byte[] buffer = new byte[5];
            fileInputStream.read(buffer, 0, 5);
            String string = new String(buffer);
     }