Algorithm

자바 BufferedReader, BufferedWriter, InputStreamReader, OutputStreamWriter, StringTokenizer

ZEROMI 2021. 11. 25. 17:21
728x90

백준알고리즘 15552


BufferedReader, BufferedWriter

데이터가 바로 전달되지 않고 버퍼를 거쳐 전달되므로 데이터 처리 효율이 높다. 대량의 데이터를 처리할 때 유용함.


BufferedReader
Scanner의 역할
LeadLine메서드만 활용해 데이터 타입이 String으로 고정되기 때문에 다른형으로 사용할 경우 형변환 작업이 필요하다.
예외처리가 필수다.

Bufferedwriter
System.out.println의 역할
BufferedWriter.flush는 맨 마지막에 한 번만 사용하면 된다.

 

StringTokenizer

1. public StringTokenizer(String str) : 전달된 매개변수 str을 default delimiter(공백문자:\t, \n, \r)로 분리

2. public StringTokenizer(String str,String delim) : 두번째 전달된 매개변수 delim으로 문자열 분리

3. public StringTokenizer(String str,String delim,boolean returnDelims) : str을 분리시킬 때 delim까지 토큰으로 포함시킬지 여부를 결정(true=포함, false=불포함)

 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.lang.Integer;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException {   
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int num;// = 100;

        while (true) {    
            num = Integer.parseInt(bf.readLine());
            if (num < 1000001) {
                break;
            }
        }

        for (int i = 0; i < num; i++) {
            String ab = bf.readLine();
            StringTokenizer st = new StringTokenizer(ab);
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            bw.write((a + b) + "\n");
        }

        bw.flush();
        bw.close();
        
    }   
    
}
728x90