- エミュレータでは必要ありませんが、実機でSDカードを使用する場合は以下のコードを AndroidManifest.xml に記述します。この記述がないと例えばファイル書き込みをした際に FileNotFoundException がthrowされます。権限がないのです。
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
- </uses-permission>
- あとは普通にファイル入出力するだけです。以下はファイル書き込みのサンプルです。注意点はSDカードのパスです。パスは /sdcard/ です。
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.OutputStreamWriter;
- import android.app.Activity;
- private void save() throws IOException {
- String fileName = "/sdcard/" + getPackageName() + "/sample.txt";
- File file = new File(fileName);
- file.getParentFile().mkdir();
- FileOutputStream fos = new FileOutputStream(file, true);
- OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
- BufferedWriter bw = new BufferedWriter(osw);
- bw.write("ファイル書き込みテスト");
- bw.flush();
- bw.close();
- }
- 作成されたか DDMS の File Explorer で見てみましょう。getPackageName()でパッケージ名をディレクトリ名に指定しているので、サンプルでは sdcard/com.kitsugim/sample.txt となっています。
- ファイルは出来ているようなので、最後にちゃんと書き込みが出来ているかの確認です。同じくDDMS の FileExplorer からファイルをPCに保存できるので、保存してからテキストエディタで開いてみます。
はい、ちゃんと書き込みもできてます。