ファイルの中身を文字列として取得する
以下の例では、BufferedReaderにより、ファイル読み込みをバッファリングしています。
このようにすることで、readメソッドでバッファリングが行われます。
よって、readメソッドの呼び出し回数よりも実際には少ないディスクアクセス回数で、
ファイルデータを読むことができます。
最後に、StringBufferオブジェクトのtoStringメソッドを呼ぶことで、
バッファ内のデータを文字列化することができます。
samples/file/FileToString.java - Eclipse SDK
|
package samples.file;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class FileToString {
// ファイル内容をを文字列化するメソッドです。
public static String fileToString(File file) throws IOException {
BufferedReader br = null;
try {
// ファイルを読み込むバッファドリーダを作成します。
br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
// 読み込んだ文字列を保持するストリングバッファを用意します。
StringBuffer sb = new StringBuffer();
// ファイルから読み込んだ一文字を保存する変数です。
int c;
// ファイルから1文字ずつ読み込み、バッファへ追加します。
while ((c = br.read()) != -1) {
sb.append((char) c);
}
// バッファの内容を文字列化して返します。
return sb.toString();
} finally {
// リーダを閉じます。
br.close();
}
}
// fileToString メソッドをテストします。
public static void main(String[] args) throws IOException {
String s = fileToString(new File("/JavaMaster/bin/samples/file/test.txt"));
System.out.println(s);
}
}
|
|
samples/file/test.txt - Eclipse SDK
|
|
コマンド プロンプト
|
C:\JavaMaster\bin>java -cp . samples.file.FileToString
サンプルの
テキストファイルです。
|
|