[[戻る>Android]]

*ファイルアクセスの方法 [#f2010d23]
~
**ファイルアクセスの概要 [#wa3e707d]
 Androidではjava.ioパッケージの標準ioが使用できるので特に難しいことはない~
-テキストの場合は、File Reader() / File Writer()
-そうでない場合は、File Inupt Stream() / File Output Stream()を使う。

~

**ファイル読込 [#h94e64a7]
 open File Input() でStreamを取得し、read()で読み込む
    // テキストの読込
    public void loadText() throws IOException{
        String path = "data.txt";
        FileInputStream input = this.openFileInput(path);
        byte[] buffer = new byte[1000];
        input.read(buffer);
        String s = new String(buffer).trim();
        edit.setText(s);
        input.close();
    }
~

**ファイル書込 [#rd8b0e48]
 open File Output() で Streamを取得し、write()で書き込む
    // テキストの保存
    public void saveText(String data) throws IOException{
        String path = "data.txt";
        FileOutputStream output = this.openFileOutput(path, Context.MODE_WORLD_READABLE);
        output.write(data.getBytes());
        output.close();
    }
~
~
**SDカード へのアクセス[#y8b59eb6]



+外部ストレージのパスを取得する
+java.io.File の File クラスのインスタンスを生成する。コンストラクタに "1."のパスとファイル名を指定する。
+File Output Stream(File Input Stream)クラスのインスタンスを生成する。コンストラクタに File クラスのインスタンスを指定する。
+File Output Stream クラスの write() を使ってデータを書き込む。
書き込みが終わったら、 close() する。

-内部フラッシュでは/data/data/パッケージ名/xxxxにしかアクセスできない~
(例:/data/data/com.sudden Anger System/xxx)
-内部フラッシュは容量が小さい
-パスを意識すべきではない。(Contextクラスのメソッドは"/data/data/パッケージ名"の部分を解決してくれるので、それを使う)

~
AndroidでSDカードにアクセスするサンプル


 File file = Environment.getExternalStorageDirectory();
 File file = File("/sdcard");

~
~
**ディレクトリ構成について [#i1cc49d0]
 Asset Managerの件~
 http://blog.haw.co.jp/android/?p=42~
 http://android.g.hatena.ne.jp/n4_t/20090622/1245689916~
 http://groups.google.co.jp/group/android-group-japan/browse_thread/thread/567326c74ebade70
~
~
 超わかりやすいHPを発見~
 http://libro99.appspot.com/index3?id=36


~
~
[[戻る>Android]]

Wiki TOP   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS