■ 정의
- 버퍼를 통해 읽고 쓰는 함수
- 입 출력 데이터가 바로 전달되지 않고 중간에 버퍼링이 된 후 전달
- Scanner를 사용하는 것보다 속도가 빠름
■ 생성자
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
■ 메소드 종류
메소드 명 | 기능 |
BufferedReader(Reader rd) | rd에 연결되는 문자 입력 버퍼 스트림 생성 |
BufferedWriter(Writer wt) | wt에 연결되는 문자 출력 버퍼 스트림 생성 |
int read() | 스트림으로부터 한 문자를 읽어 int형으로 리턴 |
int read(char[], buf) | 문자 배열 buf의 크기만큼 문자를 읽음 |
int read(char[] buf, int offset, int length) | buf의 offset 위치에서부터 length 길이만큼 문자를 스트림으로부터 읽음 |
String readLine() | 스트림으로부터 한 줄을 읽어 문자열로 리턴 |
void close() | 스트림을 닫음 |
void write(int c) | int형으로 문자 데이터를 출력 문자 스트림으로 출력 |
void newLine() | 줄 바꿈 문자열 출력 |
void flush() | 남아있는 데이터를 모두 출력 |
■ BufferedReader / BufferedWriter 사용법
- IOException , try catch문 등 예외처리 필요
- BufferedReader는 한 라인을 읽기 때문에, StringTokenizer를 통해 공백 단위 데이터 가공 필요
- BufferedWriter는 write로 출력하기때문에 \n으로 개행 필요
- flush()로 남아있는 데이터를 모두 출력 후 close()로 닫음
■ 사용 예 (백준 No.15552)
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 No15552 {
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
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((a + b) + "\n");
}
br.close();
bw.flush();
bw.close();
}
}
■ 백준 No.15552
15552번: 빠른 A+B
첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.
www.acmicpc.net
'Java > TIL (Today I Learned)' 카테고리의 다른 글
[JAVA] contains() / replace() (0) | 2023.02.07 |
---|---|
[JAVA] StringBuilder (0) | 2023.02.06 |
[JAVA] Overloading / Overriding (0) | 2023.01.30 |
[JAVA] EOF (End Of File) (0) | 2023.01.28 |
[JAVA] 이스케이프 시퀸스 (escape sequence) (0) | 2023.01.21 |
댓글