I/O
- 입출력
- 컴퓨터 내부 또는 외부의 장치와 프로그램 간의 데이터를 주고받는 것
stream
- 자바에서 입출력을 수행하려면 두 대상을 연결하고 데이터를 전송할 수 있는 무언가가 필요한데 이것을 스트림이라고 정의했다
- 스트림 : 데이터를 운반하는데 사용되는 연결통로
- 단방향 통신만 가능하기 때문에 하나의 스트림으로 입력과 출력을 동시에 처리할 수 없다
- 입력과 출력을 동시에 수행하려면 입력 스트림과 출력 스트림, 2개의 스트림이 필요하다
- 스트림은 큐와 같은 FIFO(First in First out) 구조로 되어있다
- 스트림은 바이트 단위 스트림(InputStream, OutputStream)과 문자 기반 스트림(Reader, Writer)이 있다
- 바이트 기반은 입출력의 단위가 1byte라는 뜻
- 자바는 한 문자를 의미하는 char형이 2byte이기 때문에 바이트 기반 스트림으로는 문자를 처리하는데 어려움이 있다
- 이를 보완하기 위해 문자 기반 스트림이 제공된다