본문 바로가기

공부 자료/자바[JAVA]

[Java] BufferedReader / BufferedWriter 사용법

[BufferedReader, BufferedWriter 설명]

BufferedReader : Scanner과 유사 >> 입력

BufferedWriter : System.out.println()과 유사함 >> 출력

 

장점

: Scanner 대신 BufferedReader을 사용하는 경우가 많은데 이는 실행 속도가 BufferedReader가 훨씬 빠르기 때문에 많은 양의 데이터를 처리해야 하는 경우 BufferedReader을 사용하는 것이 좋음

 

단점

: Enter만 경계로 인식함

: 받는 데이터를 String으로 고정하기 때문에 입력받은 데이터의 타입을 변경해야 할 경우 가공하는 작업이 필요함

 

 

[사용법]

1) 아래 import가 추가적으로 필요함

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

2) 예외 처리가 필요함

import java.io.IOException; //클래스 import 필요

public static void main(String[] args) throws IOException{}
//main 클래스 옆에 throws 작성이 필요

 

[BufferReader 사용법]

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//BufferedReader 사용을 위해 생성자 생성
String str = br.readLine(); //BufferedReader은 기본 String이기 때문에 그냥 입력 가능
int i = Integer.parseInt(br.readLine()); //기본 String 형으로 입력받기 때문에 int를 String으로 변환하는 Integer.parseInt 과정이 필요

 

* 만약 공백 단위로 데이터를 가공하고 싶다면 추가 작업이 필요함

StringTokenizer st = new StringTokenizer(s); //StringTokenizer인자값에 입력 문자열 넣음
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());

 

[BufferedWriter 사용법]

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String str = "String";
bw.write(s); 
bw.flush(); //남은 데이터를 모두 출력
bw.close();//Stream 닫기