BufferedReader / BufferedWriter

tryoo0607·2025년 8월 30일

들어가며

알고리즘 공부 중에 새롭게 알게 된 Java의 BufferedReader와 BufferedWriter에 대해 작성하였습니다.



BufferedReader / BufferedWriter

BufferedReader

  • System.in을 기반으로 한 빠른 입력 처리 클래스
  • readLine() 메서드로 한 줄 단위 입력 가능
  • 입력 값이 문자열(String)로 들어오기 때문에, 숫자 사용 시 Integer.parseInt() 필요

BufferedWriter

  • System.out을 기반으로 한 빠른 출력 처리 클래스
  • write() 메서드로 출력값을 버퍼에 저장
  • 마지막에 flush()로 한 번에 출력해야 함
  • 사용 후 close()로 자원 해제 필요


StringTokenizer

  • 한 줄 입력에서 공백으로 구분된 값을 쉽게 분리해주는 클래스
  • StringTokenizer st = new StringTokenizer(문자열);
  • st.nextToken()으로 토큰(값) 하나씩 꺼내오기 가능


예제 코드: 빠른 A+B

import java.io.*;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        // 빠른 입력을 위한 BufferedReader
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        // 빠른 출력을 위한 BufferedWriter
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int t = Integer.parseInt(br.readLine()); // 테스트 케이스 개수 입력

        for (int i = 0; i < t; i++) {
            // 한 줄을 입력받고 공백으로 분리
            StringTokenizer st = new StringTokenizer(br.readLine());
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());

            // 결과를 버퍼에 저장
            bw.write((a + b) + "\n");
        }

        // 버퍼에 있는 데이터 한 번에 출력
        bw.flush();

        // 자원 해제
        br.close();
        bw.close();
    }
}


마치며

읽어주셔서 감사합니다.




참고자료

[Java] 빠른 입출력을 위한 BufferedReader, BufferedWriter, StringTokenizer, StringBuilder
[Java] 알고리즘을 위한 빠른 입출력

0개의 댓글