자바에서 입출력을 수행하려면, 어느 한쪽에서 다른 쪽으로 데이터를 전달하려면 두 대상을 연결하고 데이터를 전송할 수 있는 무언가가 필요한데 이것을 스트림이라고 한다.
<aside> 💡 스트림이란, 데이터를 운반하는데 사용되는 연결통로이다. (bus랑 비슷하다고 생각하면 됌) But, 양방향만 있는 것이 아닌 단방향 통신이며, 입’출력 스트림 둘 다 필요하다.
</aside>
입출력 단위 1byte
c언어와 달리 java에서는 한 문자를 의미하는 char형이 1byte가 아닌 2byte이기 때문에, 바이트기반의 스트림으로 2byte인 문자를 처리하는데 어려움이 있었다. → 문자기반 스트림이 해결
스트림은 바이트단위로 데이터를 전송한다.
보조 스트림
실제 데이터를 주고받는 스트림이 아니기 때문에 데이터를 입출력할 수 있는 기능은 없지만, 스트림의 기능을 향상 및 새로운 기능 추가 가능하다.