''[[MobileApp>Mobile Application 入門]]'' > ''[[Android>Android]]'' > ''File Access'' ~ *ファイルアクセスの方法 [#f2010d23] **ファイルアクセスの概要 [#wa3e707d] Androidではjava.ioパッケージの標準ioが使用できる。ので、特に難しくない~ ・テキストファイルを読み書きする場合は、FileReader() / FileWriter()~ ・そうでない場合は、FileInputStream() / FileOutputStream()を使う。 ~ **ファイル読込 [#h94e64a7] 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(); } ~ **ファイル書込 [#rd8b0e48] 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カード へのアクセス[#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] 工事中 ~ **参考 [#o53f4dce] 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]]''