본문 바로가기
코딩테스트/programming_JAVA

[Java] baekjoon_15552번: BufferReader, BufferWriter

by prometedor 2021. 8. 31.
  • BufferReader로 입력을 받고, BufferWriter로 출력함 - 정의
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));

 

  • 몇 번 반복할 것인지 T로 정의
int T=Integer.parseInt(br.readLine());

 

  • StringTokenizer를 이용
StringTokenizer st=new StringTokenizer(br.readLine());
int A=Integer.parseInt(st.nextToken());
int B=Integer.parseInt(st.nextToken());
String s = br.readLine(); // String
StringTokenizer st = new StringTokenizer(s); // StringTokenizer인자값에 입력 문자열( s=br.readLin() ) 넣음
String array[] = s.split(" "); // 공백마다 끊어 배열에 넣음

 

Read한 데이터는 Line단위로만 나눠지기에 공백단위로 데이터를 가공하려면 따로 작업을 해주어야함

 

첫번째 방법 -> StringTokenizer에 nextToken()함수를 쓰면 readLine()을 통해 입력받은 값을 공백단위로 구분하여 순서대로 호출 가능

 

두번째방법 -> String.split()함수를 활용하여 배열에 공백단위로 끊어서 데이터를 넣고 사용하는 방식

 

  • String을 Int로 변환
int A=Integer.parseInt(st.nextToken());
int B=Integer.parseInt(st.nextToken());

 

  • Int를 String으로 변환
bw.write(String.valueOf(A+B));

 

  • BufferWriter 사용법
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); // BufferWriter 선언
String s = "abcdefg"; //출력할 문자열을 입력
bw.write(s); // 출력
bw.newLine(); // 줄바꿈
bw.flush(); // 남아있는 데이터를 모두 출력
bw.close(); // 스트림 닫음

 

  • 이 문제에서의 활용
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

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 T=Integer.parseInt(br.readLine());

      for(int i=0;i<T;i++) {
        StringTokenizer st=new StringTokenizer(br.readLine());
        int A=Integer.parseInt(st.nextToken());
        int B=Integer.parseInt(st.nextToken());

        bw.write(String.valueOf(A+B));
        bw.newLine();
      }
      br.close();
      bw.flush();
      bw.close();
  }
}