BufferedReader 사용하기

BaeSeBin·2025년 1월 8일

😊BufferReader 사용하기

기존에 Scanner의 경우, 개행(줄바꿈)까지 포함한 사용자 입력을 모두 처리하기 어려울 수 있음. Scanner의 nextLine() 메소드는 개행 문자를 제외한 문자열을 반환하지만, BufferedReader를 사용하면 입력된 줄에 포함된 개행문자(\n)을 그대로 처리할 수 있음.
BufferedReader는 텍스트를 읽을 때 사용되는 클래스임. 특히, 콘솔 입력이나 파일 입력처럼 입력 속도가 중요할 때 주로 사용됨. 이 클래스는 버퍼를 사용하여 데이터를 읽기 때문에 성능이 향상됨.
대용량 데이터 처리에도 효과적으로 사용될 수 있음, 메모리 사용을 최소화하며서 입력 데이터를 처리해야 할 때 유용함. 대용량 데이터를 한 번에 메모리에 올리는 대신, 스트림으로 데이터를 읽으면서 처리하기 때문임.
1. BufferedReader 주요 메소드
1) readLine()
한 줄을 읽어 문자열로 반환함 / 줄 끝에 개행 문자를 제외하고 반환함 / 입력 끝(EOF) 시 null을 반환함.
2) close()
BufferedReader를 닫음 / 더 이상 읽을 데이터가 없으면 자원을 해제함.
2. BufferedReader 기본 사용법
BufferedReader는 InputStreamReader와 함께 사용하여 콘솔에서 입력을 받을 수 있음.
기본 예제 : 한 줄 읽기
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();
        }
    }
}

0개의 댓글