용어 개념이 헷갈려서 용어 개념 부터 잡고 갑니다!
- 데이터를 임시저장 해두는 곳.
why?)
간단히 말하자면, I/O 작업의 빈번함 을 줄이고 I/O 처리를 빠르게 하기 위해 데이터를 한공간에 모았다가 한번에 처리하는 것
- 데이터 조각
chunk를 buffer에 모았다가 , buffer가 가득차면 buffer을 통채로 옮긴다.
- 데이터가 이동하는 통로
- 데이터가 전송되는 통로
데이터를 읽고, 특정 시점으로 되돌아가고, 데이터가 얼마나 남았는지 알려주고, 통로를 끊을 수 있다.
- 1byte만 읽는다.
- 10진수의 UTF-16값으로 저장된다.
- 자바는 내부적으로 UTF-16값을 쓴다. UTF-16에서 한글은 2byte이다.
- inputStream만으로는 한글을 제대로 처리 할 수 없다.
- InputStream의 확장
inputStream의 byte단위를 문자단위로 변환시키는 중개자
한글 처리 가능
buffer을 이용해 stream을 읽겠다/쓰겠다.
char 단위로 처리 - InputStreamReader가 char 단위로 처리된 stream 이므로 이것과 함께 사용.
즉, InputStreamReader를 bufferReader로 읽겠다.
buffer을 이용해 stream을 읽겠다/쓰겠다.
byte 단위로처리 - inputStream이 byte 단위로 처리된 stream이므로 이것과 함께 사용.
즉, inputStream을 bufferedInputStream로 읽겠다.