<aside> 💡 개발자 입장에선 보조스트림에 데이터를 넣으면 된다.

</aside>

<aside> 💡 버퍼가 가득 차지않으면 OS가 데이터를 가져가지 않는다. 가득 차 있을 때에만 데이터가 OS로 이동한다. 만약 이 때 강제로 데이터를 이동 시키는 것을 플러시라고 한다.

</aside>

입출력(input, output)

애플리케이션 → 파일 → 운영체제 → 하드웨어순으로 되어있다.

여기서 운영체제와 파일, 애플리케이션을 잇는 통로를 바이트스트림 이라고 한다.

스트림은 끝이없는 byte의 흐름이다.

데이터가 하드웨어까지 이동하는 동안 만약 이동경로가 막혀 데이터가 움직일 수 없다면,

데이터가 소멸한다, 이 때 보조스트림이 생성된다.

데이터의 소멸을 해결 하려면 보조스트림을 하나 만들어서 보조스트림을 통해

파일로 데이터를 옮긴다.

보조스트림에 값이 담기면 운영체제에서 데이터를 가져갈 때

보조스트림에 담긴 값은 자동으로 사라진다. (이동한다)