#author("2017-07-10T15:43:47+09:00","","") #navi(../) * テキストファイルの読み込みサンプル [#bb870b58] Javaによるテキストファイルのリードサンプルソースを以下に記します。~ Java7から使用できるようになった [[''try-with-resources''>http://docs.oracle.com/javase/jp/7/technotes/guides/language/try-with-resources.html]] を使用したサンプルソースも記しています。 #contents * 1行ずつの読み込み [#z1895ce8] 以下のサンプルソースでは、1行ずつ読み込みSystem.out.printlnで標準出力に出力します。 ** BufferedReader, FileReaderを使用した例 [#r8d6fedc] 以下のサンプルソースは、BufferedReader, FileReaderを使用した例になります。~ 念のため、すべてのReaderをclose()しています。 &ref(ReadTextFileFRBR.java); LF 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を使用した例 [#s17ae00e] 以下のサンプルソースは、BufferedReader, InputStreamReader, FileInputStreamを使用した例になります。~ 念のため、すべてのReader, Streamをclose()しています。~ 本サンプルソースでは、テキストファイルの文字コード(UTF-8)を指定しているところが上記のサンプルソースと異なります。~ Windowsで作成したテキストファイルであれば、MS932を指定すれば良いでしょう。 &ref(ReadTextFileIFSBR.java); LF 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(); } } } ** [[''try-with-resources''>http://docs.oracle.com/javase/jp/7/technotes/guides/language/try-with-resources.html]] の記述例 [#wb453a0a] 上記のBufferedReader, InputStreamReader, FileInputStreamを使用した例と同じですが、[[''try-with-resources''>http://docs.oracle.com/javase/jp/7/technotes/guides/language/try-with-resources.html]] で記述したサンプルソースになります。~ [[''try-with-resources''>http://docs.oracle.com/javase/jp/7/technotes/guides/language/try-with-resources.html]]で記述しているので、closeが不要です。 &ref(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(); } } } * 実行例 [#uc499e63] 上記の3つのサンプルソースをコンパイルし、実行した時の出力です。 + 読み込むテキストファイルを準備 $ (echo aiueo; echo あいうえお) > text.txt $ cat text.txt aiueo あいうえお #br + サンプルソースのコンパイル $ javac ReadTextFile*.java #br + 実行 ++BufferedReader, FileReaderを使用した例 $ java ReadTextFileFRBR aiueo あいうえお ++BufferedReader, InputStreamReader, FileInputStreamを使用した例 $ java ReadTextFileIFSBR aiueo あいうえお ++try-with-resources の記述例 $ java ReadTextFileTryWithRes aiueo あいうえお 以上、テキストファイルを読み込むサンプルソースでした。