😊BufferReader 사용하기
기존에 Scanner의 경우, 개행(줄바꿈)까지 포함한 사용자 입력을 모두 처리하기 어려울 수 있음. Scanner의 nextLine() 메소드는 개행 문자를 제외한 문자열을 반환하지만, BufferedReader를 사용하면 입력된 줄에 포함된 개행문자(\n)을 그대로 처리할 수 있음.
BufferedReader는 텍스트를 읽을 때 사용되는 클래스임. 특히, 콘솔 입력이나 파일 입력처럼 입력 속도가 중요할 때 주로 사용됨. 이 클래스는 버퍼를 사용하여 데이터를 읽기 때문에 성능이 향상됨.
대용량 데이터 처리에도 효과적으로 사용될 수 있음, 메모리 사용을 최소화하며서 입력 데이터를 처리해야 할 때 유용함. 대용량 데이터를 한 번에 메모리에 올리는 대신, 스트림으로 데이터를 읽으면서 처리하기 때문임.
1. BufferedReader 주요 메소드
1) readLine()
한 줄을 읽어 문자열로 반환함 / 줄 끝에 개행 문자를 제외하고 반환함 / 입력 끝(EOF) 시 null을 반환함.
2) close()
BufferedReader를 닫음 / 더 이상 읽을 데이터가 없으면 자원을 해제함.
2. BufferedReader 기본 사용법
기본 예제 : 한 줄 읽기
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.println("입력하세요:");
String input = reader.readLine();
System.out.println("입력한 내용: " + input);
} catch (IOException e) {
e.printStackTrace();
}
}
}
예제 : 여러줄 읽기(빈 줄 입력 시 종료)
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.println("여러 줄 입력하세요 (빈 줄 입력 시 종료):");
String line;
while ((line = reader.readLine()) != null) {
if (line.isEmpty()) {
break;
}
System.out.println("입력한 내용: " + line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}