본문 바로가기
💬언어/JAVA

[JAVA] BufferedReader를 이용한 입력 속도 개선

by Dong Ik 2022. 1. 16.

시간제한 때문에 Scanner로 풀 수 없는 알고리즘 문제들이 있다. 그럴 땐 Buffer를 이용한 입력으로 해결할 수 있다. Buffer는 입력된 데이터를 하나하나 바로 전달하지 않고 버퍼에 묶어서 한 번에 보내서 데이터 효율이 좋아 빠르다

 

 

 

사용법

 

1. 다음 패키지를 import 한다. (예외 처리를 위해 IOExceptionimport 한다.)

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

 

2. 버퍼를 생성한다.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

 

3. String을 생성하여 다음 입력 한 줄의 내용을 가져온다.

String A = br.readLine();

 

4. 끝!

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String A = br.readLine();
    }
}

 

유의사항

 

1. BufferString 형태로 가져오기 때문에 int로 가져오고 싶으면 다음과 같이 가져온다.

 Integer.parseInt(br.readLine())

 

2. Buffer는 데이터를 한 줄씩 가져오기 때문에 한 줄에 여러 데이터가 있으면 StringTokenizer를 이용하여 토큰으로 나눠준다.

다음  글을 참고하자.

 

2022.01.16 - [자바/이론] - [JAVA] StringTokenizer를 이용한 문자 나누기

 

[JAVA] StringTokenizer를 이용한 문자 나누기

1. StringTokenizer 앞서 Buffer를 이용한 입력과 같이 한 줄의 입력을 나눠주고 싶을 때 StringTokenizer를 이용한다. StringTokenizer는 String을 작은 Token으로 나눠준다. 1. 다음을 import 해 준다. import..

comibird.tistory.com