Algorithm/Grammer of Java

BufferedReader

mostlyjinsonit 2019. 2. 26. 13:40
반응형

BufferedReader를 통해 입력받을때 주의할 점!

 

 

1. 기본적으로 BufferedReader는 한 줄을 통째로 입력받는 방법으로 주로 쓰임.

 

2. readLine() 메서드는 값을 읽어올 때, String값으로 개행문자(엔터값)를 포함해 한줄을 전부 읽어오는 방식.

 - 비슷한 예로 Scanner메서드 중 nextLine()도 스트링 값과 개행문자(엔터값)을 같이 읽어옴.(반면 next()는 개행문자는 제외하고 스트링 값만 읽어옵니다.)

 

3. read() 메서드는 값을 읽어올 때, int값으로 변형하여 읽어오는 방식.

 - 예를들어 input.txt에 저장된 1이라는 숫자를 read()를 통해 읽어오면  int형 숫자 1을 읽어오는 것이 아닌, txt형식으로 저장된 ASCII 형식의 문자값 '1'을 읽어오는 것이므로 결국 int값으론 49를 읽어오는 것이 된다. 

 - 이를 해결하려면 int a = br.read() - 48; br.readLine(); 을 하여 ASCII 값에서 뻴셈을 이용한 뒤 엔터 값을 읽어오거나, int a = Integer.parseInt(br.readLine()); 를 통해 엔터값을 포함해 한줄을 통째로 입력받은 뒤 해당 스트링값을 int로 형변환 해주는 방법이 있다.

 
 
 
 
 
 

 

반응형