Javaでファイルを行ごとに読み込む方法

イントロダクション

この記事では、Javaを使用してファイルの内容を行ごとに読み取るためのさまざまな方法について学びます。この記事では、次のJavaクラスのメソッドを使用します:java.io.BufferedReader、java.util.Scanner、Files.readAllLines()、およびjava.io.RandomAccessFile。

BufferedReaderを使用してファイルを行単位で読む

java.io.BufferedReaderのreadLine()メソッドを使用して、ファイルを一行ずつ文字列として読み込むことができます。このメソッドは、ファイルの終端に達した際にnullを返します。

以下は、BufferedReaderを使用してファイルを1行ずつ読み込む例題プログラムがあります。

ReadFileLineByLineUsingBufferedReader.javaというファイルを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を使用してファイルを行ごとに読み取るためのサンプルプログラムです。

ReadFileLineByLineUsingScanner.javaを使って、一行ずつファイルを読み込む。
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行ずつ読み込むプログラムの例があります。

ReadFileLineByLineUsingFiles.javaを使用してファイルを行ごとに読み込む。
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を使用してファイルを行ごとに読み込むためのサンプルプログラムがあります。

ランダムアクセスファイルを使用して、ReadFileLineByLineUsingRandomAccessFile.javaを1行ずつ読み取る。
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のチュートリアルを利用して学習を続けてください。

コメントを残す 0

Your email address will not be published. Required fields are marked *