결론 : 코테를 위해선 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));
}
}
'JAVA' 카테고리의 다른 글
| [Java] String문자열을 char배열로 변환하는 방법 2가지 (0) | 2021.09.01 |
|---|---|
| [Java] 문자열 길이, 배열 길이 length (0) | 2021.09.01 |
| [Java] 대문자를 소문자로, 소문자를 대문자로 변환하기 (0) | 2021.08.31 |
| [이클립스] 자주 사용하는 코드 등록하기(단축키) (0) | 2021.08.30 |
| [Java] StringTokenizer 기본 (0) | 2021.08.09 |