import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.io.IOException;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int a = Integer.parseInt(br.readLine());
StringTokenizer st;
for (int i = 1; i <= a; i++) {
st = new StringTokenizer(br.readLine()," ");
bw.write("Case #"+i+": ");
bw.write(Integer.parseInt(st.nextToken())
+Integer.parseInt(st.nextToken())+"\n");
}
br.close();
bw.flush();
bw.close();
}
}
BufferedReader 와 BufferedWriter는 각각 Scanner 와 System.out.println()과 비슷한 역할을 한다. 하지만 속도상 훨씬 우위에 있기때문에 대용량 데이터를 처리할때 유리하다.
BufferedReader와 BufferedWriter들은 사용전 반드시 보조 스트림과 함께 선언해야한다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
입력은 readLine() 메서드를 이용하는데 이 때 리턴값의 타입이 String으로 고정된다. 그래서 다른 타입으로 받고 싶으면 따로 형변환을 해주어야 한다. 그리고 예외처리는 필수 . readLine을 할때마다 try&catch 문을 사용해 예외처리를 해주어야하지만 대부분 IOException을 통해 작업 진행한다.
그리고 readLine()을 통해 읽은 데이터는 한 줄 단위로만 나눠지기 때문에 공백단위로 데이터를 읽을려면 데이터를 나눠야 한다. 이때
StringTokenizer 의 nextToken() 메서드를 이용해 입력받은 값을 공백 단위로 분리 한다.
그리고 BufferWriter의 write()메소드는 단독으로 int 형만 값만 넣을 경우 아스키 코드값으로 인식되기 때문에 다른 문자가 나온다.
이를 방지하기위해 문자열과 int형을 함께 넣어야 int값을 제대로 출력한다.
BufferedWriter의 flush()를 통해 버퍼에 저장되어 있는 문자열들을 출력.
BufferedReader와 BufferedWriter 의 사용이 끝났으면 close()로 스트림을 종료한다.
'개발 > 알고리즘' 카테고리의 다른 글
[프로그래머스] 카운트 업 (0) | 2023.06.13 |
---|