상세 컨텐츠

본문 제목

JAVA. 시스템 입출력 : BufferedReader 와 Scanner 비교

Backend/JAVA-자바

by 사랑짱 2021. 6. 1. 10:33

본문

◆ BufferedReader 와  Scanner 

 

1. Scanner

- 입력 받은 즉시 자료형이 확정된다.

- 사용하기 편리하지만 속도가 느리다.

 

 

<사용방법>

1. Scanner 사용을 위한 패키지를 불러온다.

import java.util.Scanner;

2. Scanner 사용을 위한 문구를 적어둔다.

import java.util.Scanner;
Scanner sc = new Scanner(System.in);

3. 내용을 입력받을 변수를 자료형에 맞춰 선언한다.

import java.util.Scanner;
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();

 

 


 

 

2. BufferedReader

- 버퍼를 이용하는 대표적인 I/O 클래스이다.

- 입력받은 값은 String 타입이므로 필요에 따라 타입변환을 해야한다.

- 입력된 데이터를 바로 전달하는 것이 아닌, 버퍼에 저장해두었다가 전달하는 방법이다.

- 많은 양의 데이터를 입력받을 경우 성능적인 면에서 효율적이다.

 

- Stream으로 끝나는 클래스 : 바이트 단위로 입출력을 수행하는 클래스
- Reader / Writer로 끝나는 클래스 : 캐릭터 단위로 입출력을 수행하는 클래스
- File로 시작하는 클래스 : 하드디스크의 파일을 사용하는 클래스
- Data로 시작하는 클래스 : 자바의 원시 자료형을 출력하기 위한 클래스
- Buffered로 시작하는 클래스 : 시스템의 버퍼를 사용하는 클래스

 

<사용방법>
1. BufferedReader 사용을 위한 패키지를 불러오고, 예외처리 문구를 넣어준다.

import java.io.*;
throws IOException

2. BufferedReader 사용을 위한 문구를 적어준다.

import java.io.*;
throws IOException
BufferedReader br = new BufferedReader (new InputStreamReader(System.in));

3. 입력한 문구를 받아 줄 String 참조변수를 선언한다.

import java.io.*;
throws IOException
BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
String str = br.readLine();

 

 


 

 

3. BufferedReader와 Scanner의 차이점

 

  BufferedReader Scanner
Buffer Size 8192 1024
Syncronized(동기화) O X
문자열 파싱 단순히 읽어들임 문자열 파싱 가능
Exception IOException 던짐 IOException 숨김

 

BufferedReader가 더 큰 버퍼 사이즈를 가지고 있다.
그렇기 때문에 상대적으로 속도는 BufferedReader 가 빠르다. 

 

 

 

관련글 더보기