Javaでファイルを読み取る方法– BufferedReader
この記事では、java.io.BufferedReaderを使用してファイルからコンテンツを読み取る方法を示します。
Note
これを読むdifferent ways read a file
1. Files.newBufferedReader (Java 8)
Java 8には、BufferedReaderを返す新しいメソッドFiles.newBufferedReader(Paths.get("file"))があります。
filename.txt
A B C D E
FileExample1.java
package com.example;
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class FileExample1 {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
try (BufferedReader br = Files.newBufferedReader(Paths.get("filename.txt"))) {
// read line by line
String line;
while ((line = br.readLine()) != null) {
sb.append(line).append("\n");
}
} catch (IOException e) {
System.err.format("IOException: %s%n", e);
}
System.out.println(sb);
}
}
出力
A B C D E
2. BufferedReader
2.1 A classic BufferedReader with JDK 1.7 try-with-resources to auto close the resources.
FileExample2.java
package com.example;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class FileExample2 {
public static void main(String[] args) {
try (FileReader reader = new FileReader("filename.txt");
BufferedReader br = new BufferedReader(reader)) {
// read line by line
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
System.err.format("IOException: %s%n", e);
}
}
}
2.2 In the old days, we have to close everything manually.
FileExample3.java
package com.example.calculator;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class FileExample3 {
public static void main(String[] args) {
BufferedReader br = null;
FileReader fr = null;
try {
fr = new FileReader("filename.txt");
br = new BufferedReader(fr);
// read line by line
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
System.err.format("IOException: %s%n", e);
} finally {
try {
if (br != null)
br.close();
if (fr != null)
fr.close();
} catch (IOException ex) {
System.err.format("IOException: %s%n", ex);
}
}
}
}