MobileApp > Android > File Access


ファイルアクセスの方法

ファイルアクセスの概要

  Androidではjava.ioパッケージの標準ioが使用できる。ので、特に難しくない
  ・テキストファイルを読み書きする場合は、FileReader() / FileWriter()
  ・そうでない場合は、FileInputStream() / FileOutputStream()を使う。


ファイル読込

 openFileInput() で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();
   }


ファイル書込

 openFileOutput() で 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カード へのアクセス

  1. 外部ストレージのパスを取得する
  2. java.io.File の File クラスのインスタンスを生成。コンストラクタに "1."のパスとファイル名を指定。
  3. File Output Stream(File Input Stream)クラスのインスタンスを生成。コンストラクタに File クラスのインスタンスを指定。
  4. 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");



ディレクトリ構成について

 工事中


参考

 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



 戻る

     




Wiki TOP   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS