View

Scanner VS BufferedReader

Scanner는 데이터를 입력받을 경우 즉시 사용자에게 전송되는

BufferedReader는 입력된 데이터가 바로 프로그램으로 전달되지 않고 버퍼라는 저장 공간에 하나씩 채우다가 버퍼가 가득 차거나 개행 문자를 만날 경우 사용자에게 전송되는 방식으로  이는 시스템의 데이터처리의 효율성을 높여준다.

  Scanner BufferedReader
소요시간 2.5초 (2441ms) 0.4초 (452ms)

 

하지만 Scanner 보다 사용방식이 복잡한데

  1. Scanner와 달리 자체적으로 IOException 처리 필요
  2. 입력값이 무조건 String으로 고정되기때문에 입력받은 데이터를 변환/파싱하는 작업이 필요
  3. Enter만 경계로 인식하기 때문에 공백을 기준으로 값을 입력받는 경우 별도의 파싱이 필요함 (StringTokenizer 혹은 split)
  • BufferedReader 사용법
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //선언
String str = br.readLine(); //String
int input = Integer.parseInt(br.readLine()); //Int

 

  • StringTokenizer : String에서 구분자를 통해서 하나의 문자열을 여러개의 토큰형태로 나눌 때 사용하는 클래스 
StringTokenizer st = new StringTokenizer(br.readLine());
 int input = Integer.parseInt(st.nextToken());​
토큰이란?
가장 낮은 단위로 어휘 항목들을 구분할 수 있는 분류 요소 (의미를 가지는 최소한의 문자 덩어리/문자열)

 

📌 버퍼란 ? 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 임시 메모리 영역

 

 

728x90

'알고리즘' 카테고리의 다른 글

[알고리즘] 06-3. 특수 정렬 알고리즘(기수/계수)  (0) 2022.12.20
우선순위 큐(Prioriy Queue)  (0) 2022.11.17
스택(Stack)  (0) 2022.10.13
Share Link
reply
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31