Language/Java

Scanner vs BufferedReader

JUNGKEUNG 2021. 5. 29. 13:29
반응형

이번에는 Scanner 클래스와 BufferedReader 클래스 차이을 알아보겠습니다.

 

둘의 공통점은 문자열을 입력 받는데 사용된다는 공통점이 있습니다.

 

구문 분석 하려면 Scanner 사용하고 구문을 한 줄씩 읽으려면 BufferedReader 사용한다는 이야기도 종종 들리더라고요

 

그럼 둘의 차이점은 무엇이냐?

 

1. Scanner


- 정규 표현을 사용해 원시적 형태 및 라인을 구문 분석 할 수 있는 간단한 텍스 스캐너 입니다.

- java.utill 패키지 내에 위치하고 있습니다.

- 버퍼의 사이즈가 1024byte 입니다

- I/O Exception을 던지지 않습니다.

 

import java.utill.Scanner;

public class Main{
	public static void main(String[] aregs){
    
    // Scanner Object sc 생성
    Scanner sc = new Scanner(System.in);
    
    // Scanner sc의 nextInt() 사용
    int a = sc.nextInt();
    
    //nextXXX() 뒤의 nextLine()사용을 위해 넣어줌
    
    sc.nextLine();
    String b = sc.nextLine();
    System.out.println("a = " + a + ",b = " + b_;
    }
}

 

 

 

2. BufferedReader


- 행을 효율적으로 읽을 수 있도록 문자를 버퍼링하여 문자 입력 스트림에서 텍스트를 읽습니다.

- java.io 패키지 내에 위치하고 있습니다.

- 버퍼의 사이즈가 8192bye 입니다.

  (버퍼를 이용해서 입출력의 효울을 높일 수 있도록 합니다.)

- 데이터를 파싱하지 않은 채 가져옵니다.

  ( String 으로만 읽고 저장합니다.)

- I/O Exception을 던집니다.

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;

public class Main {
    public static void main(String[] args) {
    
        // BufferedReader Object br 생성, System에서 입력한 값을 받음
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        // BufferedWriter Object bw 생성, System에 보낼 값을 받음
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        try {
            // 시스템에서 입력받은 값(br)을 bw로 보내시오
            bw.write(br.readLine());
            
            // br 닫기
            br.close();
            
            // bw에 쌓인 것 내보내기
            bw.flush();
            
            // bw 닫기
            bw.close();
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

 

 

Scanner

BufferedReader

정규 표현을 사용해 원시적 형태 및 라인을 구문 분석 할 수 있는 간단한 텍스 스캐너 입니다. 행을 효율적으로 읽을 수 있도록 문자를 버퍼링하여 문자 입력 스트림에서 텍스트를 읽습니다.
java.utill 패키지 내에 위치하고 있습니다. java.io 패키지 내에 위치하고 있습니다.
버퍼의 사이즈가 1024byte (!KB)입니다 버퍼의 사이즈가 8192bye (8KB)입니다.
  (버퍼를 이용해서 입출력의 효울을 높일 수 있도록 합니다.)
I/O Exception을 던지지 않습니다.

I/O Exception을 던집니다.
데이터를 파싱 가능합니다 데이터를 파싱하지 않은 채 가져옵니다.
  ( String 으로만 읽고 저장합니다.)

 

'Language > Java' 카테고리의 다른 글

프로세스와 스레드 차이점  (0) 2021.06.30
Statement와 PreparedStatement 차이  (0) 2021.06.30
Eclipse spring 설치  (0) 2021.06.02
Big-O 표기법  (0) 2021.05.30
JPA와 JDBC 이 무엇일까  (0) 2021.05.28