백준 : 빠른 A+B

김아무개·2023년 3월 25일
0

백준

목록 보기
6/17

내 코드

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();
    }
}

BufferedReader , BufferedWriter

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

입력 스트림에서 텍스트를 읽어들이기 위해 사용되며,
기본적으로 문자 데이터를 처리한다.
버퍼를 사용하여 데이터를 일정량 모아 한 번에 읽기를 수행함으로써
입출력 성능을 향상시킨다.

BufferedReader br = new BufferedRwiter(new InputStreamReader(System.in);
br.readLine();
br.close();

BufferedWriter

출력 스트림에 텍스트를 쓰기 위해 사용된다.
버퍼를 사용하여 데이터를 일정량 모아 한번에 쓰기를 수행하여
입출력 성능을 향상시킨다.

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out);
bw.write();
bw.newLine(); // 개행문자 \n 역할

bw.flush(); // 버퍼를 비우고 모아둔 데이터를 출력시킴
bw.close();

flush( )를 호출하지 않으면,
버퍼가 가득 차거나 .close( )가 호출되었을때 데이터가 출력(= 출력 스트림에 쓰기 수행)된다.

profile
Hello velog! 

0개의 댓글