JAVA

JAVA (24) 스트림

동동이임 2023. 4. 13. 00:57

▶ 스트림

프로그램상의 데이터를 외부매체(모니터, 스피커, "파일")로 출력하거나 입력장치(키보드, 마우스, "파일")로 입력받는 과정을 진행하고자 한다면 프로그램과 외부매체와의 "통로"를 만들어줘야하는데 이때 통로를 스트림이라고 부른다.

 

■ 스트림의 특징

- 단방향 : 입력이면 입력만, 출력이면 출력만 존재한다. (즉, 동시에 입출력을 하고자 한다면 하나의 스트림으로는 안된다.)

- 선입선출(FIFO) : 먼저 전달한 값이 먼저 나오게 된다.

- 시간지연 문제가 발생할 수 있다.

 

스트림의 구분

1. 통로의 사이즈

- 바이트 스트림 : 1BYTE짜리가 이동할 수 있을 정도의 사이즈(좁은 통로) => 입력(xxxInputStream) / 출력(xxxOutputStream)

- 문자 스트림 : 2BYTE짜리가 이동할 수 있을 정도의 사이즈(큰 통로) => 입력(xxxReader) / 출력(xxxWriter)

 

2.외부매체와의 직접적인 연결 여부

- 기반스트림 : 외부매체와 직접적으로 연결되는 통로

- 보조스트림 : 기반스트림만으로 부족한 성능을 향상시켜주는 용도의 스트림(외부매체와 직접연결x) => 단독 사용 불가

단, 보조스트림은 단독으로 사용이 안된다. 외부매체와 직접 연결되는 기반스트림이 필수다.