JavaマスターJavaプログラムサンプル集ファイル処理のサンプル → ファイルの中身を文字列として取得する

ファイルの中身を文字列として取得する

ファイルに保存されているテキストデータを読み取る作業は、まずファイルオブジェクトを作成し、 ファイルリーダを作成して、バッファをはさんで、エラー出力をキャッチして・・・と、意外に面倒です。 そこで、その手順をまとめたメソッドをご紹介します。

以下の例では、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 filethrows 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((charc);
      }
      // バッファの内容を文字列化して返します。
      return sb.toString();
    finally {
      // リーダを閉じます。
      br.close();
    }
  }
  // fileToString メソッドをテストします。
  public static void main(String[] argsthrows 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 
サンプルの
テキストファイルです。