Java BufferedReader:예제를 사용하여 Java에서 파일을 읽는 방법
자바에서 파일을 읽는 방법
Java는 파일에서 읽을 수 있는 여러 메커니즘을 제공합니다. 이를 위해 제공되는 가장 유용한 패키지는 java.io.Reader입니다. 이 클래스에는 java.io.BufferedReader
패키지 아래에 Java BufferedReader 클래스가 포함되어 있습니다.
자바에서 BufferedReader란 무엇입니까?
BufferedReader 문자, 배열 또는 줄을 매끄럽게 읽는 문자를 버퍼링하여 입력 스트림(예:파일)에서 텍스트를 읽는 Java 클래스입니다. 일반적으로 Reader의 각 읽기 요청은 기본 문자 또는 바이트 스트림에 대한 해당 읽기 요청을 발생시킵니다.
따라서 Java FileReader 및 InputStreamReader와 같이 read() 작업이 비용이 많이 들 수 있는 모든 Reader 주위에 Java의 BufferedReader를 래핑하는 것이 좋습니다. 일반적인 사용법은 다음과 같이 Java의 BufferedReader에 파일 경로를 전달하는 것입니다.
objReader = new BufferedReader(new FileReader("D:\DukesDiary.txt"));
//Assuming you have a text file in D drive
이것은 기본적으로 objReader에서 파일을 로드합니다. 이제 파일의 내용을 반복하고 인쇄해야 합니다.
아래 코드의 while 루프는 파일 끝에 도달할 때까지 파일을 읽습니다.
while ((strCurrentLine = objReader.readLine()) != null) {
System.out.println(strCurrentLine);
}
strCurrentLine은 현재 줄을 읽고 Java readLine 함수 objReader.readLine()은 문자열을 반환합니다. 따라서 루프는 null이 될 때까지 반복됩니다.
BufferedReader 예:
아래 코드는 전체 구현을 보여주는 Java BufferedReader 예제입니다.
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFileExample {
public static void main(String[] args) {
BufferedReader objReader = null;
try {
String strCurrentLine;
objReader = new BufferedReader(new FileReader("D:\\DukesDiary.txt"));
while ((strCurrentLine = objReader.readLine()) != null) {
System.out.println(strCurrentLine);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (objReader != null)
objReader.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
참고:
위의 코드는 특히 코드의 finally 블록에서 몇 가지 매우 중요한 처리를 합니다.
이 코드는 메모리 관리가 효율적으로 수행되고 메모리를 해제하는 objReader.close() 메서드가 호출되는지 확인합니다.
BufferedReader JDK7 예:
다음은 BufferedReader 클래스를 사용한 Java Read Files의 예입니다.
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFileExample_jdk7 {
private static final String FILENAME = "D:\\DukesDiary.txt";
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new FileReader(FILENAME))) {
String strCurrentLine;
while ((strCurrentLine = br.readLine()) != null) {
System.out.println(strCurrentLine);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}