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