2010年7月14日水曜日

Android アプリでSDカードを使う方法

AndroidアプリでSDカードにデータを読み書きする方法です。

  1. エミュレータでは必要ありませんが、実機でSDカードを使用する場合は以下のコードを AndroidManifest.xml に記述します。この記述がないと例えばファイル書き込みをした際に FileNotFoundException がthrowされます。権限がないのです。
  2. 
    
  3. あとは普通にファイル入出力するだけです。以下はファイル書き込みのサンプルです。注意点はSDカードのパスです。パスは /sdcard/ です。
  4. 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();
    }
    
  5. 作成されたか DDMS の File Explorer で見てみましょう。getPackageName()でパッケージ名をディレクトリ名に指定しているので、サンプルでは sdcard/com.kitsugim/sample.txt となっています。
  6. ファイルは出来ているようなので、最後にちゃんと書き込みが出来ているかの確認です。同じくDDMS の FileExplorer からファイルをPCに保存できるので、保存してからテキストエディタで開いてみます。

はい、ちゃんと書き込みもできてます。

1 件のコメント:

  1. AndroidのSDカードを管理する方法:http://goo.gl/cywF4H
    ここで一緒に共有します。

    返信削除