728x90

 

개요

코딩 테스트를 준비할 때 입력을 받을 때 Scanner와 BufferedReader를 사용해서 입력을 받습니다.

 

BufferedReader는 Scanner보다 속도가 빠르고 안전하다는 장점이 있지만, 문자열로만 입력을 받기 때문에 정수 사용 시 형변환이 필요하고 반드시 예외처리를 해야 합니다.

 

이번 글에서는 BufferedReader를 사용할 때 왜 예외처리가 필요한지, 그리고 어떻게 처리해야 하는지 알아보겠습니다.

 

 

IOException이란 ❓

IOException이란 입출력 작업발생할 수 있는 예외를 의미합니다.

발생하는 경우

 

  • 파일을 읽거나 쓸 때
  • 네트워크를 통해 데이터를 주고받을 때
  • 키보드 입력을 받을 때

BufferedReader에서 IOException가 필요한 이유 ❓

 

  • BufferedReader는 입력 스트림을 다루기 때문에
  • 입력 과정에서 예기치 못한 오류(파일이 없거나, 네트워크 문제 등)가 발생할 수 있어서
  • 이러한 상황에 대비하기 위해 예외 처리가 필요

 

 

IOException 처리 방법

try-catch문

 

try {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String line = br.readLine();
} catch (IOException e) {
    // 예외 처리
} finally {
    // 리소스 해제
}

 

throws 사용

public void readInput() throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String line = br.readLine();
}

 

차이점

  • try-catch: 예외를 직접 처리
  • throws: 예외를 호출한 메서드로 위임

많이 사용되는 방식

  • 코딩 테스트에서는 주로 throws를 사용 (코드가 간단해짐)
  • 실제 프로젝트에서는 try-catch를 사용 (예외 처리를 직접하는 것이 안전)