스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O 스트림 자바에서는 어느 한 쪽에서 다른 쪽으로 데이터를 전달하기 위해서는 두 대상을 연결할 무언가가 필요한데, 이를 스트림이라 한다. 즉, 스트림은 데이터를 전송하는데 사용되는 연결 통로 의 역할을 하고 이를 통해 I/O가 이루어진다. 스트림은 단방향으로만 데이터를 전송할 수 있다. 따라서 입력과 출력을 동시에 처리하기 위해서는 아래와 같이 입력 스트림과 출력 스트림, 총 두 개의 스트림이 필요하다. 스트림은 먼저 보낸 데이터를 먼저 받게 되고, 중간에 건너뜀 없이 데이터를 전송한다. 즉, 큐와 같은 FIFO 구조로 이루어져있다. NIO (New I/O) 자바 1.4버전부터 추가된 API로 기존 스트림을 사용하는 I..