チュートリアル
Java でテキストファイルを読み込む方法について説明します。
テキストファイルを読み込む方法は数多くあります。
1文字づつ読み込む方法や1行づつ読み込む方法などをご紹介します。
メソッド概要
引数で渡されたファイルパスの中身を読み込みます。
以下3種の読み込みのサンプルコードを紹介します。
- FileReaderを使用した例
- InputStreamReaderを使用した例
- BufferedReaderを使用した例
サンプルコード
FileReaderを使用した例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
package sample.code; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; public class FileAction02 { /** * ファイルを読み込む * @param filePath ファイルパス */ public static void readFile1(String filePath) { FileReader fr = null; try { // 読み込むファイル File file = new File(filePath); //ファイルが存在し、ファイルであること if (file.exists() && file.isFile()) { //FileReaderクラスのオブジェクトを生成する fr = new FileReader(file); // ファイルを1文字ずつ読み込む int data; while ((data = fr.read()) != -1) { System.out.println((char) data); } } } catch (IOException e) { e.printStackTrace(); } finally { try { // クローズ if (fr != null) { fr.close(); } } catch (IOException e) { e.printStackTrace(); } } } } |
InputStreamReaderを使用した例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
package sample.code; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; public class FileAction02 { /** * ファイルを読み込む * @param filePath ファイルパス */ public static void readFile2(String filePath) { FileInputStream fs = null; InputStreamReader isr = null; try { // 読み込むファイル File file = new File(filePath); //ファイルが存在し、ファイルであること if (file.exists() && file.isFile()) { fs = new FileInputStream(file); isr = new InputStreamReader(fs); // InputStreamReaderクラスのreadメソッドでファイルを1文字ずつ読み込む int data; while ((data = isr.read()) != -1) { System.out.println((char) data); } } } catch (IOException e) { e.printStackTrace(); } finally { try { // クローズ if (isr != null) { isr.close(); } } catch (IOException e) { e.printStackTrace(); } } } } |
BufferedReaderを使用した例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
package sample.code; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; public class FileAction02 { /** * ファイルを読み込む * @param filePath ファイルパス */ public static void readFile3(String filePath) { BufferedReader br = null; try { //読み込むファイル File file = new File(filePath); //ファイルが存在し、ファイルであること if (file.exists() && file.isFile()) { br = new BufferedReader(new FileReader(file)); // 1行づつ読み込む String line; while ((line = br.readLine()) != null) { System.out.println(line); } } } catch (IOException e) { e.printStackTrace(); } finally { try { // クローズ if (br != null) { br.close(); } } catch (IOException e) { e.printStackTrace(); } } } } |
テストコード(JUnit)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
package sample.test; import org.junit.jupiter.api.Test; import sample.code.FileAction02; class FileActionTest02 { @Test void test01() { FileAction02.readFile1("C:\\work\\test1.txt"); } @Test void test02() { FileAction02.readFile2("C:\\work\\test2.txt"); } @Test void test03() { FileAction02.readFile3("C:\\work\\test3.txt"); } } |