BufferedReader는 Scanner처럼 데이터를 받아온다
BufferedWriter는 System.out.println();처럼 데이터를 출력한다
BufferedReader/BufferedWriter는 버퍼를 이용하기 때문에 Scanner/System.out.println()보다 빠른 입출력을 제공한다.
1. BufferedReader 사용법
1.1 readLine()
- 입력값으로 받은 데이터를 라인 단위로 읽어 String으로 반환(다른 타입으로 입력 받으려면 형변환)
- 예외처리 필수(try&catch 또는 throws IOException 활용)
1.2 close()
- BufferedReader를 통한 입력이 끝나면 입력 스트림을 닫는다
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args) throws IOException { //throws로 예외처리
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine(); //String 반환
int i = Integer.parseInt(br.readLine()); //Integer로 형변환
}
}
2. 입력받은 데이터 공백 단위로 구분하기
2.1 StringTokenizer에 nextToken()함수 사용
- readLine()으로 입력받은 데이터를 공백단위로 구분
- 한 줄에 여러개의 데이터를 입력받을 수 있다
2.2 String.split(" ")메소드 사용
- 데이터를 공백 단위로 끊어서 배열에 삽입
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException { //throws로 예외처리
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
//br.readLine()으로 읽어온 데이터를 Integer로 형변환 후
//StringTokenizer를 이용해 공백 단위로 구분하고
//nextToken()을 통해 순서대로 호출한다
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
//데이터를 공백 단위로 끊어서 배열에 삽입한다
String s = br.readLine();
String array[] = s.split(" ");
}
}
3. BufferedWriter 사용법
3.1 write()
- 출력할 데이터를 버퍼에 담는다
3.2 flush()
- 데이터를 출력하고 버퍼를 비운다
3.2 String.valueOf()
- 정수를 출력하기 위해 String으로 형변환이 필요하다
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class Main{
public static void main(String[] args) throws IOException { //throws로 예외처리
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//1. 문자열 출력
String s = "Hello World!";
bw.write(s+"\n");
bw.flush(); //버퍼에 남아있는 데이터를 모두 출력하고 버퍼를 비운다
//2. 정수 출력
bw.write(String.valueOf(5)); //String으로 형변환 후 출력
bw.flush();
bw.close(); //스트림 닫기
}
}
- BufferedWriter의 경우에는 flush() / close()를 반드시 호출하여 버퍼를 비우고 스트림을 닫아주어야 한다
'language > java' 카테고리의 다른 글
StringBuilder (0) | 2021.06.21 |
---|