Stream
- 프로그램은 외부에서 데이터를 읽거나 외부로 데이터를 출력하는 일이 빈번하게 일어남
- 데이터는 어떠한 통로를 통해서 데이터가 이동 되는데, 이 통로를 Stream이라 한다.
- Java는 이러한 기능을 수행하기 위해 InputStream과 OutPutStream이 존재하며, 단일 방향으로 연속적으로 흘러간다.
- Stream은 단방향 통신만 가능하기 때문에 하나의 Stream으로 입력과 출력을 동시에 처리 할 수 없다.
- Stream은 먼저 보낸 데이터를 먼저 받게 되어 있으며, 중간에 건너뜀 없이 연속적으로 데이터를 주고 받는다.
- InputStream과 OutputStream은 추상 클래스이며, 추상 메소드를 오버라이딩해서 다양한 역할을 수행할 수 있다.
- Java에서 기본적으로 제공하는 I/O 기능은 java.io 패키지에서 제공된다.
- InputStream은 외부에서 데이터를 읽는 역할
- OutputStream은 외부로 데이터를 출력하는 역할
InputStream
- 바이트 기반 입력 스트림의 최상위 추상 클래스
- 모든 바이트 기반 입력 스트림은 이 클래스를 상속 받는다.
- 파일 데이터를 읽거나 네트워크 소켓을 통해 데이터를 읽거나 키보드에서 입력한 데이터를 읽을 때 사용
- InputStream은 읽기에 대한 다양한 추상 메소드를 정의
- InputStream의 추상 메소드를 오버라이딩 하여 목적에 따라 데이터를 입력 받을 수 있다.