BufferedReader
Scanner 와 유사하다
Bufferedwriter
System.out.println(); 과 유사하다
BufferedReader 와 Bufferedwriter 모두 (scanner와 System.out.println()에 비해)
훨씬 빠르기 때문에 多 데이터 처리 시 유리하다.
-> 입력된 데이터가 바로 전달되지 않고 Buffer(버퍼)를 거쳐 전달되므로, 데이터 처리 효율성을 높임
BufferdReader 의 경우
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); // 선언
String s = bf.readLine(); // String
int i = Integer.parseInt(bf.readLine()); // Int
StringTokenizer st = new StringTokenizer(s); // StringTokenizer인자값에 입력 문자열 넣음
// 방법 1
int a = Integer.parseInt(st.nextToken()); // 첫번째 호출
int b = Integer.parseInt(st.nextToken()); // 두번째 호출
// 방법 2
String array[] = s.split(" "); // 공백마다 데이터 끊어서 배열에 넣음
Read한 데이터는 Line단위로만 나눠지므로, 공백 단위로 데이터를 가공하려면 따로 작업이 필요
방법 1
방법 2
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); // 할당된 버퍼에 값 넣어주기
String s = "abcdefg"; // 출력할 문자열
bw.write(s+"\n"); // 버퍼에 있는 값 전부 출력
bw.flush(); // 남아있는 데이터를 모두 출력시킴
bw.close(); // 스트림을 닫음
BufferedWriter 의 경우
버퍼를 잡아 놓았기 때문에, 반드시 flush() / close() 를 반드시 호출해서 뒤처리가 필요
bw.write 에는 System.out.println();과 같이 자동 개행 기능이 없기 때문에
개행을 할 경우 \n
를 통해 따로 처리 필요