Java에서 입출력을 위해 사용되는 BufferedReader
와 BufferedWriter
클래스는 버퍼를 이용하여 입출력 성능을 향상시키는 기술입니다. BufferedReader
를 통해 입력받은 데이터는 기본적으로 문자열 형태로 저장됩니다.
버퍼를 사용하면 입출력 작업이 발생할 때마다 실제 입출력 장치와 통신하는 것이 아니라, 먼저 버퍼에 데이터를 저장한 후 일정량이 쌓이면 한 번에 입출력 장치와 통신합니다. 이를 통해 입출력 작업의 빈도를 줄이고, 입출력 성능을 향상시킬 수 있습니다.
Scanner
는 Java에서 표준 입력을 받기 위해 사용되는 클래스입니다. Scanner
에서 입력받은 데이터는 정수나 상수, 문자열 등 다양한 자료형 데이터를 받아올 수 있으며, 개행 문자나 띄어쓰기를 기준으로 값을 받아옵니다. 한편, BufferedReader
는 일반적으로 문자열 데이터만 받아올 수 있으며, 다른 자료형으로 변환하기 위해서는 type casting이 필요합니다.println
은 자동으로 출력 데이터에 개행 문자를 추가해주며, 어떤 데이터를 출력할 지 명시해야 합니다. 한편, BufferedWriter는 flush
를 이용하여 버퍼에 저장되어 있는 모든 데이터를 한번에 출력해줍니다.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();
}
}