반응형

# BufferedReader / BufferedWriter

## BufferedReader 

  • 버퍼를 이용하여 읽고 쓰는 함수, 버퍼를 이용하기 때문에 입출력의 효율이 좋아진다.
  • Scanner의 경우 띄어쓰기와 엔터를 경계로 인식하기 때문에 따로 가공 할 필요가 없어 사용이 편리하다.
  • BufferedReader의 경우 엔터만 경계로 인식, 입력받은 데이터가 모두 String으로 고정되지만, Scanner에 비해 빠르다.
1. 콘솔로 입력 받는 경우
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

String s = bf.readLine(); //String

int i = Integer.parseInt(bf.readLine()); //Int 

bf.close();


2. 파일로 입력받는 경우
FileReader file = new FileReader("파일명.java");
BufferedReader bf = new BufferedReader(file);

 

## BufferedWriter

  • BufferedWriter은 System.out.print("")과 동일하게 사용 가능한 함수이다.
BufferedWriter bf = new BufferedWriter(new FileWriter("BufferedWriter.txt"));


1. 출력
bf.write("출력할 내용");


2. 개행 ( newLine() or \n )
bf.newLine();
bf.write("출력내용\n");


3. 남은 데이터 모두 출력
bf.flush();


4. 스트림
bf.close();

 

## 사용 예제

import java.io.*;

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

    for ( int i = 0; i < num; i++ ) {
      String temp = bf.readLine();
      String[] arr = temp.split(" ");
      int a = Integer.parseInt(arr[0]);
      int b = Integer.parseInt(arr[1]);
      bw.write((a+b) + "\n");
    }
    
    bw.flush();
    bw.close();

  }
}
반응형

+ Recent posts