본문 바로가기
JAVA

[Java] Scanner, BufferedReader 차이

by 코리니덕 2021. 8. 8.

결론 : 코테를 위해선 BufferedReader를 쓰자!

 

Scanner와 BufferedReader의 가장 큰 차이는 속도다.

- 버퍼를 사용하지 않는 Scanner는 키보드의 입력이 있는 즉시, 바로 프로그램에 전달된다.

- 버퍼를 사용하는 BufferedReader는 키보드의 입력이 있을 때마다 한 문자씩 버퍼로 전송하고, 버퍼가 가득 차거나, 개행문자가 나타나면 버퍼의 내용을 한 번에 전송한다.

 

 

Scanner 특징

- 입력이 적은 경우 사용

- 내부적으로 정규식 사용하여 다른 유형 읽기 가능

- 문자열을 읽으려면 nextLine() 사용

- 단일문자를 읽으려면 next(), charAt(0) 사용

- java.util.Scanner 클래스

 

 

BufferedReader 특징

- 입력이 많은 경우 사용

- enter(line)만 경계로 인식(공백단위는 StringTokenizer, split(" ") 사용필요)

- br.readLine()입력시, 리턴값은 String으로 고정(다른 타입 사용하고 싶으면 형변환 필수)

- Buffer의 이용으로 입출력 효율 Up

- Scanner에 비해 4배정도 빠름

- line단위의 입출력시 용이

- java.io.BufferedReader 클래스

- 예외 처리 필요

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main{
	public static void main(String[] args) throws IOException{
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    }
}