게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
java 공부중인데 버퍼스트림에 관한 개념이 잘 이해가 안가네요.
게시물ID : programmer_3766짧은주소 복사하기
작성자 : 오오홍
추천 : 0
조회수 : 1450회
댓글수 : 2개
등록시간 : 2014/06/05 14:23:33
자바 입출력 공부중에 이해가 안가는 부분이 있어 질문드립니다....

버퍼 스트림이라는게 기본 스트림에 보조적으로 적용해서
데이터를 한번에 모았다가 처리하는 거다... 라고 책에는 나와있는데 이게 괜히 헷갈리네요.

a라는 텍스트 파일에 임의의 문장이 입력되어 있다고 할때,
FileInputStream fis = new FileInputStream("src/ch17/files/a.txt");
FileOutputStream fos = new FileOutputStream("src/ch17/files/b.txt");
int buf;
while((buf = fis.read())!=-1){
System.out.print((char)buf);
fos.write(buf);
}
fis.close();
fos.close();
이렇게 첫번째 코드와

FileInputStream fis= new FileInputStream("src/ch17/files/a.txt");
BufferedInputStream bin = new BufferedInputStream(fis);
FileOutputStream fos = new FileOutputStream("src/ch17/files/b.txt");
BufferedOutputStream bout = new BufferedOutputStream(fos);
int buf;
while((buf=bin.read())!=-1){
System.out.print((char)buf);
bout.write(buf);
}
bin.close();
bout.close();
버퍼 스트림을 적용시킨 두번째 코드가 있는데요.
출력은 별 차이없이 똑같은 모양으로 나오는데, 이 원리가 헷갈리네요.

첫번째 코드는 반복적으로 한바이트씩 글자를 읽어들여서 출력을 하는거고,
두번째 코드는 데이터를 한번에 모았다가 출력을 한다는 얘기인데,
사실상 반복문을 보면 위나 아래나 한글자씩 읽어서 출력을 하는건 똑같은 거 같은데 말이죠....
정확히 메모리상에서 이게 어떤 원리로 작동을 하는건지 모르겠네요.
조금 알려주시면 감사하겠습니다.... ㅠㅠ
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호