스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O 스트림이란 자바에서 어느 한 쪽에서 다른 쪽으로 데이터를 전달하려면, 두 대상을 연결하고 데이터를 전송할 수 있는 통로가 필요한데, 이것을 스트림(stream)이라고 정의한다. 스트림은 연속적인 데이터의 흐름을 물에 비유해서 붙여진 이름인데 여기서 마치 물이 한 쪽 방향으로 흐르는 것과 같아 스트림도 역시 단방향 통신만 가능하다. 즉, 하나의 스트림으로 입력과 출력을 동시에 처리할 수 없다. 따라서 양방향 통신을 위해 입력 스트림 출력 스트림 둘 다 필요하다. 입력스트림으로 바이트나 문자가 들어오는데 큐와 같이 FIFO 구조로 받아온다. 즉 먼저 보낸 데이터를 먼저 받게 된다. 버퍼란 I/O에서 입력 스트림과 출력 ..