Javaでファイルを行ごとに読み込む方法
イントロダクション
この記事では、Javaを使用してファイルの内容を行ごとに読み取るためのさまざまな方法について学びます。この記事では、次のJavaクラスのメソッドを使用します:java.io.BufferedReader、java.util.Scanner、Files.readAllLines()、およびjava.io.RandomAccessFile。
BufferedReaderを使用してファイルを行単位で読む
java.io.BufferedReaderのreadLine()メソッドを使用して、ファイルを一行ずつ文字列として読み込むことができます。このメソッドは、ファイルの終端に達した際にnullを返します。
以下は、BufferedReaderを使用してファイルを1行ずつ読み込む例題プログラムがあります。
package com.scdev.readfileslinebyline;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFileLineByLineUsingBufferedReader {
public static void main(String[] args) {
BufferedReader reader;
try {
reader = new BufferedReader(new FileReader("sample.txt"));
String line = reader.readLine();
while (line != null) {
System.out.println(line);
// read next line
line = reader.readLine();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Java SE 8 の BufferedReader API ドキュメントで学習を続けてください。
スキャナを使用してファイルを一行ずつ読み込む。
Scannerクラスを使用して、ファイルを開き、その内容を行ごとに読み込むことができます。
以下は、Scannerを使用してファイルを行ごとに読み取るためのサンプルプログラムです。
package com.scdev.readfileslinebyline;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ReadFileLineByLineUsingScanner {
public static void main(String[] args) {
try {
Scanner scanner = new Scanner(new File("sample.txt"));
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
Scanner APIドキュメント(Java SE 8)で学習を続けてください。
Filesを使用してファイルを一行ずつ読み込む。
java.nio.file.Filesというユーティリティクラスには、さまざまな便利なメソッドが含まれています。readAllLines()メソッドは、すべてのファイルの行を文字列のリストに読み込むために使われます。
以下には、Filesを使用してファイルを1行ずつ読み込むプログラムの例があります。
package com.scdev.readfileslinebyline;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
public class ReadFileLineByLineUsingFiles {
public static void main(String[] args) {
try {
List<String> allLines = Files.readAllLines(Paths.get("sample.txt"));
for (String line : allLines) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Java SE 8のFiles APIドキュメントで学びを続けてください。
ランダムアクセスファイルを使用して、ファイルを行ごとに読み込む方法を読む。
RandomAccessFileを使用して、読み込みモードでファイルを開き、そのreadLineメソッドを使ってファイルを行単位で読むことができます。
以下には、RandomAccessFileを使用してファイルを行ごとに読み込むためのサンプルプログラムがあります。
package com.scdev.readfileslinebyline;
import java.io.IOException;
import java.io.RandomAccessFile;
public class ReadFileLineByLineUsingRandomAccessFile {
public static void main(String[] args) {
try {
RandomAccessFile file = new RandomAccessFile("sample.txt", "r");
String str;
while ((str = file.readLine()) != null) {
System.out.println(str);
}
file.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Java SE 8のRandomAccessFile APIドキュメントを利用して学習を続けてください。
結論
この記事では、Javaを使用してファイルの内容を行ごとに読み取るさまざまな方法について学びました。
さらにJavaのチュートリアルを利用して学習を続けてください。