자바 입출력과 스트림
자바에서 입출력 기능을 스트림 클래스로 제공하는 이유
<aside>
💡 입출력 기능을 추상화하여 클래스로 제공함으로써 장치(하드웨어)에 독립적으로 프로그래밍할 수 있다.
</aside>
1. 스트림(stream)

- 자바에서 모든 입출력은 스트림을 통해 이루어진다.
ex) 파일 디스크, 키보드, 모니터, 메모리 입출력, 네트워크 등
- 스트림은 네트워크에서 유래된 용어로 자료 흐름이 물의 흐름과 같다는 의미에서 사용되었다.
- 자바는 입출력 장치와 무관하고 일관성 있게 프로그램을 구현할 수 있도록 일종의 가상 통로인 스트림을 제공한다.
- 자료를 읽어 들이려는 소스(source)와 자료를 쓰려는 대상(target)에 따라 각각 다른 스트림 클래스를 제공한다.
2. 기준에 따른 분류
입력 스트림과 출력 스트림