18-1. IO 패키지 소개
프로그램에서는 데이터를 외부에서 읽고 다시 외부로 출력하는 작업이 빈번히 일어난다.
- 데이터는 사용자로부터 키보드를 통해 입력될 수도 있고, 파일 또는 네트워크로부터 입력될 수도 있다.
- 데이터는 반대로 모니터로 출력될 수도 있고, 파일로 출력되어 저장될 수도 있으며 네트워크로 출력되어 전송될 수도 있다.
→ 자바에서 데이터는 **스트림(Stream)**을 통해 입출력된다.
- 스트림은 단일 방향으로 연속적으로 흘러가는 것을 말한다.
18-2. 입력 스트림과 출력 스트림
프로그램이 출발지냐 또는 도착지냐에 따라서 스트림의 종류가 결정된다.
- 프로그램이 데이터를 입력받을 때는 **입력 스트림(
InputStream
)**이라 부른다.
- 프로그램이 데이터를 보낼 때는 **출력 스트림(
OutputStream
)**이라고 부른다.
항상 프로그램을 기준으로 데이터가 들어오면 입력 스트림, 데이터가 나가면 출력 스트림이라는 것을 명심하자!
- 프로그램이 네트워크상의 다른 프로그램과 데이터 교환을 하기 위해서는 양쪽 모두 입력 스트림과 출력 스트림이 따로 필요하다.
- 스트림의 특성이 단방향이므로, 하나의 스트림으로 입력과 출력을 모두 할 수 없기 때문이다.