#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
 あいうえお


以上、テキストファイルを読み込むサンプルソースでした。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS