본문 바로가기
FOR SW ENGINEER👩‍💻/JAVA

[JAVA] BufferedReader, BufferedWriter

by 씨니 2022. 3. 18.
728x90

▶BufferdReader와 BufferdWriter 란?

- 버퍼를 이용해서 읽고 쓰는 함수.

- 버퍼를 사용하기 때문에 이 함수를 사용하면 입출력 효율 및 속도가 좋아짐. (데이터 처리 효율성↑)

- 많은 양의 데이터를 처리할 때 유용하다.

- BufferdReader : Scanner와 유사하다.

- BufferdWriter : System.out.println()과 유사하다.

 

 

▶BufferedReader와 BufferdWriter사용전 설정

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

 

▶BufferedReader사용방법

BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //선언
String str = bf.readLine(); //String값 받기
int num = Integer.parseInt(bf.readLine()); //Int형 값 받기
br.close();

- BufferedReader 입력은 readLine();메서드를 활용함.

- 이는 리턴값을 String으로 고정시켜, 다른 타입으로 입력받고 싶으면 형변환을 꼭 해주어야 함.

 

▶BufferdWriter 사용방법

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write("hello");
bw.newLine(); //개행, 엔터 역할
bw.write("world\n"); //개행과 함께 출력
bw.flush(); //남아있는 데이터 모두 출력
bw.close();

- ButteredWriter는 System.out.println()처럼 문자열 출력과 개행을 동시에 해주지 않기 때문에 "\n"혹은 newLine()사용.

- flush()함수로 버퍼에 있는 데이터 모두 출력후, bw.close()함수로 버퍼 닫아줌.

 

 

▶주의해야 할 점

- BufferedReader의 readLine()사용시, InputStream == null일때 장애를 대비해 미리 IOException예외처리 해주어야 함. 

- BufferedReader사용후 close()로 닫아줄 것.

- BufferedWriter또한 사용 후, flush()함수로 남은 데이터 모두 출력 하고, close()로 닫아줄 것.

- BufferedWriter는 결과값으로 String만 출력하기 때문에 숫자 출력하고 싶을 시에 String.valueOf()꼭 붙여줘야 함.

728x90