문서의 이전 판입니다!
* I/O란 input과 ouput의 약자로 입력과 출력, 간단히 줄여서 입출력이라고 한다. * 입출력은 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것을 말한다.
* 자바에서 입출력을 수행하려면, 즉 어느 한쪽에서 다른 쪽으로 데이터를 전달하려면, 두 대상을 연결하고 데이터를 전송할 수 있는 무언가가 필요한데 이것을 스트림(stream)이라고 정의했다. * 스트림은 연속적인 데이터의 흐름을 물에 비유해서 붙여진 이름인데 여러가지로 유사한 점이 많다. 물이 한쪽 방향으로만 흐르는 것과 같이 스트림은 단방향통신만 가능하기 때문에 하나의 스트림으로 입력과 출력을 동시에 처리할 수 없다. * 그래서 입력과 출력을 동시에 수행하려면 입력을 위한 입력스트림(input stream)과 출력을 위한 출력스트림(ouput stream), 모두 2개의 스트림이 필요하다. * 스트림은 먼저 보낸 데이터를 먼저 받게 되어 있으며 중간에 건너뜀 없이 연속적으로 데이터를 주고받는다. 큐(queue)와 같은 FIFO(First In First Out)구조로 되어 있다고 생각하면 이해하기 쉬울 것이다.
입력스트림 | 출력스트림 | 입출력 대상의 종료 |
---|---|---|
FileInputstream | FileOutputstream | 파일 |
ByteArrayInputStream | ByteArrayOutputStream | 메모리(byte)배열 |
PipedInputStream | PipedOutputStream | 프로세스(프로세스간의 통신) |
AudioInputStream | AudioOutputStream | 오디오 장치 |
* 이들은 모두 InputStream , OutputStream의 자손들, 각각 읽고 쓰는데 필요한 추상메서드를 자신에 맞게 구현해 놓았다
입력스트림 | 출력스트림 | |
---|---|---|
FileInputstream | FileOutputstream | |
ByteArrayInputStream | ByteArrayOutputStream | |
PipedInputStream | PipedOutputStream | |
AudioInputStream | AudioOutputStream | 오디오 장치 |