BufferedReader/Writer 란?

Lee·2023년 7월 6일
0

BufferedReader/Writer란?

Java에서 입출력을 위해 사용되는 BufferedReaderBufferedWriter 클래스는 버퍼를 이용하여 입출력 성능을 향상시키는 기술입니다. BufferedReader를 통해 입력받은 데이터는 기본적으로 문자열 형태로 저장됩니다.

버퍼를 사용하면 입출력 작업이 발생할 때마다 실제 입출력 장치와 통신하는 것이 아니라, 먼저 버퍼에 데이터를 저장한 후 일정량이 쌓이면 한 번에 입출력 장치와 통신합니다. 이를 통해 입출력 작업의 빈도를 줄이고, 입출력 성능을 향상시킬 수 있습니다.

표준 입출력과의 차이

  1. 표준 입력에 해당하는 Scanner는 Java에서 표준 입력을 받기 위해 사용되는 클래스입니다. Scanner에서 입력받은 데이터는 정수나 상수, 문자열 등 다양한 자료형 데이터를 받아올 수 있으며, 개행 문자나 띄어쓰기를 기준으로 값을 받아옵니다. 한편, BufferedReader는 일반적으로 문자열 데이터만 받아올 수 있으며, 다른 자료형으로 변환하기 위해서는 type casting이 필요합니다.
  2. 표준 출력을 위해 사용되는 println은 자동으로 출력 데이터에 개행 문자를 추가해주며, 어떤 데이터를 출력할 지 명시해야 합니다. 한편, BufferedWriter는 flush를 이용하여 버퍼에 저장되어 있는 모든 데이터를 한번에 출력해줍니다.

BufferedReader/Writer를 이용한 예제 코드

import java.io.*;


public class Main {

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

        /* BufferedWriter */
        bw.write("Input: ");
        bw.flush();

        /* BufferedReader */
        String input = br.readLine();

        /* BufferedWriter */
        bw.write(input);
        bw.flush();

    }

}
profile
잡다한 개발자

0개의 댓글