-
반응형
I/O란?
Intput/Output의 약자로 입력과 출력, 간단히 입출력이라 함
입출력 : 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것
예) 키보드로부터 데이터를 입력, System.out.println()을 이용해 화면에 출력
스트림(stream)
자바에서 I/O를 수행하려면, 즉 어느 한 쪽에서 다른 한 쪽에 데이터를 전달하려면 두 대상을 연결하고 데이터를 전송할 수 있는 무언가가 필요함, 이것을 스트림(stream)이라 정의(단, 람다의 스트림과는 다른 개념)
스트림 : 데이터를 운반하는데 사용되는 연결 통로
연속적인 데이터의 흐름을 물에 비유해서 붙여진 이름으로, 물이 한 쪽 방향으로만 흐르는 것과 같이 스트림은 단방향통신만 가능하기 때문에 하나의 스트림으로 입력과 출력을 동시에 처리할 수 없음
입력과 출력을 동시에 수행하려면 입력을 위한 입력스트림(InputStream)과 출력을 위한 출력스트림(OutputStream), 2개가 필요함
스트림은 먼저 보낸 데이터를 먼저 받게 되어 있으며 중간에 건너뜀 없이 연속적으로 데이터를 주고받음 - 큐(queue)와 같은 FIFO(First In First Out)구조로 되어있다고 생각하면 이해하기 쉬울 것
바이트기반 스트림 - InputStream, OutputStream
스트림은 바이트단위로 데이터를 전송, 입출력 대상에 따라 아래와 같은 입출력 스트림이 있음
FileInputStream FileOutputStream 파일 ByteArrayInputStream ByteArrayOutputStream 메모리(byte배열) PipedInputStream PipedOutputStream 프로세스(프로세스간의 통신) AudioInputStream AudioOutputStream 오디오장치
반응형'Java' 카테고리의 다른 글
[Java] 이펙티브 자바 (1) - 객체 생성과 파괴 (0) 2020.04.18 [Java] GOF 디자인패턴 용어 정리 (0) 2020.04.16 Stream(스트림) - 8. 스트림의 변환 (0) 2020.03.11 Stream(스트림) - 7. Collector 구현 (최종연산 3/3) (0) 2020.03.11 Stream(스트림) - 6. collect() (최종연산 2/3) (0) 2020.03.11