자바에서 파일을 한 줄씩 읽는 방법

소개

이 기사에서는 파일의 내용을 한 줄씩 읽는 다양한 방법에 대해 배우게 될 것입니다. 이 기사에서는 다음과 같은 Java 클래스의 메서드를 사용합니다: java.io.BufferedReader, java.util.Scanner, Files.readAllLines(), 그리고 java.io.RandomAccessFile.

BufferedReader를 사용하여 파일 한 줄씩 읽기

java.io.BufferedReaderreadLine() 메서드를 사용하여 파일을 한 줄씩 읽어 String으로 가져올 수 있습니다. 이 메서드는 파일의 끝에 도달하면 null을 반환합니다.

다음은 BufferedReader를 사용하여 파일을 한 줄씩 읽는 예제 프로그램입니다:

ReadFileLineByLineUsingBufferedReader.java
package com.journaldev.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);
				// 다음 줄 읽기
				line = reader.readLine();
			}

			reader.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

더 많은 학습은 BufferedReader API 문서 (Java SE 8)와 함께하세요.

Scanner를 사용하여 파일을 한 줄씩 읽기

파일을 열고 내용을 한 줄씩 읽으려면 Scanner 클래스를 사용할 수 있습니다.

다음은 Scanner를 사용하여 파일을 한 줄씩 읽는 예제 프로그램입니다.

ReadFileLineByLineUsingScanner.java
package com.journaldev.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를 사용하여 파일을 한 줄씩 읽는 예제 프로그램은 다음과 같습니다:

ReadFileLineByLineUsingFiles.java
package com.journaldev.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();
		}
	}

}

계속해서 Files API 문서(Java SE 8)로 학습하세요.

RandomAccessFile을 사용하여 파일을 한 줄씩 읽기

RandomAccessFile을 사용하여 파일을 읽기 모드로 열고 readLine 메서드를 사용하여 파일을 한 줄씩 읽을 수 있습니다.

RandomAccessFile을 사용하여 파일을 한 줄씩 읽는 예제 프로그램은 다음과 같습니다:

ReadFileLineByLineUsingRandomAccessFile.java
package com.journaldev.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();
		}
	}

}

계속해서 RandomAccessFile API 문서(Java SE 8)로 학습하세요.

결론

이 글에서 파일의 내용을 한 줄씩 읽는 Java의 다양한 방법에 대해 배웠습니다.

더 많은 Java 튜토리얼로 학습을 계속하세요.

Source:
https://www.digitalocean.com/community/tutorials/java-read-file-line-by-line