- 追加された行はこの色です。
- 削除された行はこの色です。
[[戻る>Android]]
~
''[[戻る>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]]
''[[戻る>Android]]''