coyojo10의 개발블로그!
BufferedReader와 BufferdWriter 본문
BufferedReader와 BufferdWriter는 버퍼를 사용하여 읽기와 쓰기를 하는 함수이다.
버퍼를 사용하지 않는 입력은, 키보드의 입력이 키를 누르는 즉시 바로 프로그램에 전달된다.
반면 버퍼를 사용하는 입력은, 키보드의 입력이 있을 때마다 한 문자씩 버퍼로 전송한다. 버퍼가 가득 차거나 혹은 개행 문자가 나타나면 버퍼의 내용을 한 번에 프로그램에 전달한다.
한번 버퍼를 거쳐 출력되는 것보다, 키보드의 입력을 받는 즉시 출력하는 것이 더 빠른 것이 아닌가 생각할수 있다.
하드디스크는 속도가 느리다. 그리고 외부 장치(키보드, 모니터 등)와 데이터 입출력도 생각보다 시간이 오래 걸린다. 그렇기 때문에 키보드의 입력이 있을 때마다 바로 이동시키는 것 보다는, 중간에 버퍼를 두어 한번에 묶어 보내는 것이 더 효율적이고 빠른 방법이다.
위의 스트림은 둘 다 입력 소스로부터 자신의 내부 버퍼 크기만큼 데이터를 미리 읽고 버퍼에 저장합니다.
생성자 매개값으로 준 입력 스트림과 연결되어 8918 내부 버퍼 사이즈를 갖습니다.
BufferedInputStream bis = new BufferedInputStream(바이트 입력 스트림); // 최대 8912 바이트
BufferedReader br = new BufferedReader(문자 입력 스트림); // 최대 8912 문자
스트림이 데이터를 읽어들이는 방법은 InputStream / Reader 와 갖습니다.
FileOutputStream
: 데이터를 파일에 바이트 스트림으로 저장하기 위해 사용한다.
1.1 생성자
FileOutputStream(File file) | 주어진 File 객체가 가리키는 파일을 쓰기 위한 객체를 생성. 기존의 파일이 존재할 때는 그 내용을 지우고 새로운 파일을 생성. |
FileOutputStream(String fileName) | 주어진 이름의 파일을 쓰기 위한 객체를 생성 |