最終更新:
moonlight_aska 2011年06月05日(日) 14:03:11履歴
コンテキスト(Context)クラスのopenFileInputメソッドからFileInputStreamインスタンスを取得し, これを利用することでファイルへの文字データまたはバイナリデータをファイルから読み込むことができる.
ファイル(sample.txt)を読み出し, テキストビューに表示する.

- openFileInputメソッドの引数にファイル名を指定して, FileInputStreamインスタンスを取得する.
- BufferedReaderの内部にInputStreamWriterをラップしたBufferedReaderオブジェクトを生成する. BufferReaderを使用しなくてもファイルの読み込みは行えるが, readメソッドやreadLineメソッドが呼ばれるたびにファイルにアクセスするので効率がよくない.
- readLineメソッドで1行読み出す.
- closeメソッドでクローズする.
package com.moonlight_aska.android.fileread01;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.widget.TextView;
public class FireRead01 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
final Context context = this;
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView text = (TextView)findViewById(R.id.textview_id);
BufferedReader in = null;
try {
FileInputStream file = context.openFileInput("sample.txt");
in = new BufferedReader(new InputStreamReader(file));
text.setText(in.readLine());
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

バイナリデータのファイルを読み出し, 内容をダンプする.

- openFileInputメソッドの引数にファイル名を指定して, FileInputStreamインスタンスを取得する.
- BufferedInputStreamオブジェクトを生成する. BufferedInputStreamを使用しなくてもファイルの読み込みは行えるが, readメソッドが呼ばれるたびにファイルにアクセスするので効率がよくない.
- readメソッドでバイナリデータをファイルから読み込む.
- closeメソッドでクローズする.
package com.moonlight_aska.android.fileread02;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
public class FileRead02 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
Context context = this;
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText edit = (EditText)findViewById(R.id.edittext_id);
BufferedInputStream in = null;
try {
FileInputStream file = context.openFileInput("sample.bin");
in = new BufferedInputStream(file);
byte buf[] = new byte[256];
in.read(buf, 0, 256);
String str = null;
for(int i=0; i<256; i++) {
if(i % 5 == 4) {
str = String.format("0x%02x\n", buf[i]);
}
else {
str = String.format("0x%02x, ", buf[i]);
}
edit.append(str);
}
file.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}

このページへのコメント
すみません。自己完結いたしました。
突然質問失礼いたします。
スクリプトファイルの読み込み処理で詰まってたどり着きました。
記事にあるsample.txtはどこにおかれているのでしょうか?