scanner와 System.out.println() 를 대신하여 사용 할 수 있다.
속도 측면에서 훨씬 빠르기 때문에 데이터 처리의 효율성이 좋다. 바로 전송하는 것 보다, 중간에 메모리 버퍼를 두어서 데이터를 묶어 이동하는 것이 빠르기 때문이다.
대신에 받은 데이터는 String으로 인식하므로 가공과정이 추가로 필요하다.
BufferedReader
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //선언
String str = bf.readLine(); //String 입력받음
int i = Integer.parseInt(bf.readLine()); //입력을 int로 형변환
입력은 readLine()이라는 메서드를 활용한다. 여기에 주의점이 두가지가 있다.
- readLine()시 리턴값을 String으로 고정되기에 String이 아닌 다른타입으로 입력을 받을려면 형변환을 꼭 해주어야한다는 점이다.
- 예외처리를 꼭 해주어야한다. 대개 throws IOException 을 이용한다. (try catch를 이용해도 됨.)
BufferedWriter
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); //버퍼에 값 넣어주기
String s = "abcdefg"; //출력할 문자열
bw.write(s+"\n"); //버퍼에 있는 값 전부 출력
bw.flush(); //남아있는 데이터를 모두 출력시킴
bw.close(); //스트림을 닫음
\n 을 써주는 이유는 자동 개행이 되지 않기때문에 써준다. 이와 관련해 newLine() : 개행 메서드를 이용 할 수 있다.
'Java' 카테고리의 다른 글
[Java] this. 와 this() / 생성자 (0) | 2023.05.12 |
---|---|
[Java] JVM, 자바 실행과정, 메모리 영역, 참조변수 (0) | 2023.05.11 |
[Java/자바] stream, map, collect (0) | 2023.02.06 |
extends와 implements 차이 (0) | 2023.02.01 |
Collections (0) | 2022.09.22 |