Input
& Output
입출력(I/O)을 하기 위해 필요한 데이터 운반 연결 통로
연속적인 데이터의 흐름을 물(stream)에 비유해 붙혀진 이름이다.
단방향통신만을 지원하기 때문에 입력과 출력을 동시에 수행해야 하는경우 두 개의 스트림이 필요하다.
⇒ 입력 스트림(input stream), 출력 스트림(output stream)
Queue 구조로 되어있다. (FIFO)
데이터를 바이트(byte)단위로 주고받으며 입출력 대상에 따라 다음과 같은 입출력 스트림을 제공한다.
이런 여러 입출력 스트림 구현체들은 다음과 같은 인터페이스 API를 구현한다.
⇒ read의 반환타입이 int인 이유는 read의 반환값의 범위가 0~255
와 -1
이기 때문이다.
⇒ read메서드에서 입력스트림으로부터 1 byte
를 읽을 수 없으면 -1
을 반환한다.
⇒ read(byte[] b, int off, int len)은 len개의 byte를 읽어서 byte배열 b의 off위치부터 저장한다는 의미.
⇒ read(byte[] b)는 내부적으로 read(byte[] b, int off, int len)을 호출한다.