loading

프로그래밍/JAVA

Scanner와 BufferedReader의 차이점

침착곰 2021. 4. 17. 16:17
반응형

안녕하세요

저도 최근에 알고리즘을 공부하면서 BufferedReader에 대한 것을 알게되었는데요 ㅠ

이번 글에서는 Scanner와 BufferedReader의 차이점에 대해서 알아보겠습니다

 

둘 다 Java에서 문자열을 입력받을 때 사용하는 공통점이 있습니다

사용용도에 따라서 두 개를 적절히 사용하는 것이 중요하다고 할 수 있습니다

 

1. Sccaner는 버퍼 크기가 1024 chars, BufferedReader의 버퍼 크기는 8192 chars를 사용합니다

2. Scanner는 문자열을 구분하여 분석하는 파싱이 가능하고 BufferedReader는 파싱기능을 제공하지 않아 단순히 읽기만 가능합니다

3. BufferedReader는 입력 시 바로 동기화가 되지만 Scanner는 동기화가 되지 않습니다

4. BufferedReader는 즉시 IOException을 던지지만 Scanner는 숨깁니다

 

주로 이렇게 4가지의 차이점이 존재합니다

Scanner와 BufferedReader를 사용하는 간단한 프로그램을 만들어보겠습니다

 

1. 전체소스

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package Blog.BufferdReader;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) throws IOException {    
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String a = br.readLine();
        
        Scanner sc = new Scanner(System.in);
        String b = sc.next();
        
        System.out.println("BufferedReader : " + a);
        System.out.println("Scanner : " + b);
    }
}
cs
 
 

2. 결과화면

 

각각 BufferedReader과 Scanner를 사용해서 데이터를 입력받는 방법에 대해서 알아봤습니다

이번에 처음으로 BufferReader와 Scanner를 파악하여 글을 작성하는 것이라 제대로 모르는 부분이 있을 수 있습니다

틀린 부분에 대해서는 댓글을 달아주시면 감사하겠습니다

반응형
그리드형