Java에서 한 줄씩 큰 텍스트 파일을 읽는 방법

Hassan Saeed 2023년10월12일
  1. Java에서 한 줄씩 파일을 읽는BufferedReader
  2. Java에서 한 줄씩 파일을 읽는Stream
  3. Java에서 줄 단위로 파일을 읽는스캐너
Java에서 한 줄씩 큰 텍스트 파일을 읽는 방법

이 자습서에서는 Java에서 한 줄씩 큰 텍스트 파일을 효율적으로 읽는 방법에 대해 설명합니다.

Java에서 텍스트 파일을 읽는 방법에는 여러 가지가 있습니다. 그러나이 자습서는 큰 텍스트 파일을 읽는 데 특화되어 있으며 큰 텍스트 파일을 빠르게 읽는 세 가지 가장 효율적인 방법에 대해 설명합니다.

Java에서 한 줄씩 파일을 읽는BufferedReader

Java의 BufferedReader 클래스는 지정된 문자 입력 스트림에서 텍스트를 읽고 제공 할 문자를 버퍼링합니다. 문자, 배열 및 줄의 효율적인 읽기. 이 방법을 사용하면 파일 크기가 상당히 큰 입력 파일을 한 줄씩 효율적으로 읽을 수 있습니다.

아래 예제는BufferedReader를 사용하여txt 파일을 읽고 내용을 한 줄씩 출력하는 방법을 보여줍니다.

import java.io.*;

public class Main {
  public static void main(String[] args) {
    String file = "my-file.txt";
    try (BufferedReader br = new BufferedReader(new FileReader(file))) {
      String line;
      while ((line = br.readLine()) != null) {
        System.out.println(line);
      }
    } catch (IOException e) {
      System.out.println("An error occurred.");
      e.printStackTrace();
    }
  }
}

Java에서 한 줄씩 파일을 읽는Stream

Java 8 이상 사용자는Stream을 사용하여 한 줄씩 큰 파일을 읽을 수도 있습니다. 아래 예제는Stream을 사용하여txt 파일을 읽고 내용을 한 줄씩 출력하는 방법을 보여줍니다.

import java.io.*;
import java.nio.file.*;
import java.util.stream.*;

public class Main {
  public static void main(String[] args) {
    String file = "my-file.txt";
    try (Stream<String> stream = Files.lines(Paths.get(fileName))) {
      stream.forEach(System.out::println);
    } catch (IOException e) {
      System.out.println("An error occurred.");
      e.printStackTrace();
    }
  }
}

위에서 설명한 두 가지 방법은 전체 파일을 메모리로 읽는 대신 한 줄씩 입력 파일을 읽습니다. 따라서 메모리로 완전히 읽을 수없는 대용량 파일이있는 경우이 두 가지 방법은 매우 효율적입니다.

그러나 입력 파일을 완전히 읽을 수있을만큼 메모리가 큰 경우 아래 방법을 시도해 볼 수도 있습니다.

Java에서 줄 단위로 파일을 읽는스캐너

Java의 Scanner 클래스는 정규 표현식을 사용하여 기본 유형과 문자열을 구문 분석 할 수있는 간단한 텍스트 스캐너입니다. Scanner(File source)는 전체 파일을 메모리로 읽어 들인 다음 한 줄씩 처리합니다.

아래 예는Scanner를 사용하여txt 파일을 읽고 내용을 한 줄씩 출력하는 방법을 보여줍니다.

import java.io.*;
import java.util.*;

public class Main {
  public static void main(String[] args) throws IOException {
    String fileName = "my-file.txt";
    Scanner scan = new Scanner(new File(fileName));
    while (scan.hasNextLine()) {
      String line = scan.nextLine();
      System.out.println(line);
    }
  }
}

Java에서 큰 텍스트 파일을 읽고 한 줄씩 처리하는 세 가지 방법에 대해 논의했습니다. 각 방법에는 특정 시나리오에서 사용할 방법을 결정할 때 고려해야 할 몇 가지 제약과 장점이 있습니다.

관련 문장 - Java File