package baekjoon;
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int cnt = Integer.parseInt(br.readLine());
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
while(cnt-- > 0) {
StringTokenizer sz = new StringTokenizer(br.readLine());
bw.write(Integer.parseInt(sz.nextToken()) + Integer.parseInt(sz.nextToken()) + "\n");
}
bw.flush();
bw.close();
br.close();
}
}
java.io
패키지에 포함되어 있다.
버퍼를 사용하여 효율적으로 데이터를 읽고 쓰기 위해 사용된다.
두 클래스 모두 사용이 끝난 후에 .close()
메소드를 호출하여 정리해주어야 한다.
하지만 try-resources-catch
문을 사용하면 try문을 빠져나옴과 동시에 자원이 회수되기 때문에 프로그래머가 close()메소드를 호출하지 않아도 된다.
🔻try-resources-catch 사용 예시
public class Main {
public static void main(String[] args) throws IOException {
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out))) {
int cnt = Integer.parseInt(br.readLine());
while (cnt-- > 0 || br.readLine() != null) {
StringTokenizer sz = new StringTokenizer(br.readLine());
bw.write(Integer.parseInt(sz.nextToken()) + Integer.parseInt(sz.nextToken()) + "\n");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
입력 스트림에서 텍스트를 읽어들이기 위해 사용되며,
기본적으로 문자 데이터를 처리한다.
버퍼를 사용하여 데이터를 일정량 모아 한 번에 읽기를 수행
함으로써
입출력 성능을 향상시킨다.
BufferedReader br = new BufferedRwiter(new InputStreamReader(System.in);
br.readLine();
br.close();
출력 스트림에 텍스트를 쓰기 위해 사용된다.
버퍼를 사용하여 데이터를 일정량 모아 한번에 쓰기를 수행
하여
입출력 성능을 향상시킨다.
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out);
bw.write();
bw.newLine(); // 개행문자 \n 역할
bw.flush(); // 버퍼를 비우고 모아둔 데이터를 출력시킴
bw.close();
flush( )를 호출하지 않으면,
버퍼가 가득 차거나 .close( )가 호출되었을때 데이터가 출력(= 출력 스트림에 쓰기 수행)된다.