Javaによるテキストファイルのリードサンプルソースを以下に記します。
Java7から使用できるようになった try-with-resources を使用したサンプルソースも記しています。
以下のサンプルソースでは、1行ずつ読み込みSystem.out.printlnで標準出力に出力します。
以下のサンプルソースは、BufferedReader, FileReaderを使用した例になります。
念のため、すべてのReaderをclose()しています。
import java.io.BufferedReader; import java.io.FileReader; import java.io.FileNotFoundException; import java.io.IOException; class ReadTextFileFRBR { public static void main(String[] args) { String readFile = "text.txt"; BufferedReader br = null; try { FileReader fr = new FileReader(readFile); br = new BufferedReader(fr); String l = br.readLine(); while (l != null) { System.out.println(l); l = br.readLine(); } fr.close(); br.close(); } catch (FileNotFoundException e) { System.err.println(readFile + " not found."); } catch (IOException e) { System.err.println("I/O error."); } catch (Exception e) { e.printStackTrace(); } } }
以下のサンプルソースは、BufferedReader, InputStreamReader, FileInputStreamを使用した例になります。
念のため、すべてのReader, Streamをclose()しています。
本サンプルソースでは、テキストファイルの文字コード(UTF-8)を指定しているところが上記のサンプルソースと異なります。
Windowsで作成したテキストファイルであれば、MS932を指定すれば良いでしょう。
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.FileNotFoundException; import java.io.IOException; class ReadTextFileIFSBR { public static void main(String[] args) { String readFile = "text.txt"; BufferedReader br = null; try { FileInputStream fis = new FileInputStream(readFile); InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); br = new BufferedReader(isr); String l = br.readLine(); while (l != null) { System.out.println(l); l = br.readLine(); } br.close(); isr.close(); fis.close(); } catch (FileNotFoundException e) { System.err.println(readFile + " not found."); } catch (IOException e) { System.err.println("I/O error."); } catch (Exception e) { e.printStackTrace(); } } }
上記のBufferedReader, InputStreamReader, FileInputStreamを使用した例と同じですが、try-with-resources で記述したサンプルソースになります。
try-with-resourcesで記述しているので、closeが不要です。
ReadTextFileTryWithRes.java LF
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.FileNotFoundException; import java.io.IOException; class ReadTextFileTryWithRes { public static void main(String[] args) { String readFile = "text.txt"; try (BufferedReader br = new BufferedReader( new InputStreamReader( new FileInputStream(readFile),"UTF-8"))) { String l = br.readLine(); while (l != null) { System.out.println(l); l = br.readLine(); } } catch (FileNotFoundException e) { System.err.println(readFile + " not found."); } catch (IOException e) { System.err.println("I/O error."); } catch (Exception e) { e.printStackTrace(); } } }
上記の3つのサンプルソースをコンパイルし、実行した時の出力です。
$ (echo aiueo; echo あいうえお) > text.txt $ cat text.txt aiueo あいうえお
$ javac ReadTextFile*.java
$ java ReadTextFileFRBR aiueo あいうえお
$ java ReadTextFileIFSBR aiueo あいうえお
$ java ReadTextFileTryWithRes aiueo あいうえお
以上、テキストファイルを読み込むサンプルソースでした。