stream

자바에서 입출력을 수행하려면, 어느 한쪽에서 다른 쪽으로 데이터를 전달하려면 두 대상을 연결하고 데이터를 전송할 수 있는 무언가가 필요한데 이것을 스트림이라고 한다.

<aside> 💡 스트림이란, 데이터를 운반하는데 사용되는 연결통로이다. (bus랑 비슷하다고 생각하면 됌) But, 양방향만 있는 것이 아닌 단방향 통신이며, 입’출력 스트림 둘 다 필요하다.

</aside>

자바의 입출력

바이트기반 스트림

입출력 단위 1byte

c언어와 달리 java에서는 한 문자를 의미하는 char형이 1byte가 아닌 2byte이기 때문에, 바이트기반의 스트림으로 2byte인 문자를 처리하는데 어려움이 있었다. → 문자기반 스트림이 해결

스트림은 바이트단위로 데이터를 전송한다.

보조 스트림

실제 데이터를 주고받는 스트림이 아니기 때문에 데이터를 입출력할 수 있는 기능은 없지만, 스트림의 기능을 향상 및 새로운 기능 추가 가능하다.

  1. Buffered → 입출력 성능향상
  2. Filter → 필터로 입출력 처리
  3. Data → int, float와 같은 기본형 단위로 데이터를 처리하는 기능
  4. Sequence → 출력은 x → 두 개의 스트림을 하나로 연결
  5. LineNumber → 출력 x → 읽어 온 데이터의 라인 번호를 카운트
  6. Object → 데이터를 객체단위로
  7. PrintStrem → 입력 x → 버퍼를 이용하여 추가적인 print 관련 기능