1. 스트림(stream)이란
- 데이터를 운반하는데 사용하는 연결통로
- 스트림은 단방향통신만 가능하기 때문에 하나의 스트림으로 입력과 출력을 동시에 할 수 없다.
- 스트림은 먼저 보낸 데이터를 먼저 받게 되어 있으며 중간에 건너뜀 없이 연속적으로 데이터를 주고받는다.
- 스트림은 바이트단위로 데이터를 전송
- 종류
- 파일
- 메모리 (byte배열)
- 메모리에 데이터를 저장. 주로 다른 곳에 입출력하기 전에 데이터를 임시로 바이트배열에 담아서 변환 등의 작업을 하는데 사용된다.
- 바이트배열은 자동으로 가비지컬렉터에 의해 처리되므로 close()를 이용해, 스트림을 닫지 않아도 된다.
- 한 번에 1바이트씩 밖에 처리하지 못해 작업효울이 떨어진다.
- 그러므로 배열을 사용해 입출력 작업을 효율적으로 하도록 한다.
- 프로세스 (프로세스간 통신)
- 오디오 장치
- 모두 InputStream 또는 OutputStream의 자손들이며, 각각 읽고 쓰는데 필요한 추앗메서드를 구현해 놓았다.
3. 보조 스트림
- 스트림의 기능을 보완하기 위한 스트림
- 스트림을 먼저 생성한 다음에 이를 이용해서 보조스트림을 생성
- 대표적으로 BufferedInputStream, BufferedOutputStream이 있다.
- 보조 스트림의 close() 함수를 호출하면, 기반스트림의 close()도 자동으로 호출하게 된다.
4. 문자기반 스트림 (Reader, Writer)
- 문자를 의미하는 char형이 2byte이기 때문에 문자를 처리하는데 더 효율적이다.
- 인코딩 처리를 해준다.
- 종류
- FileReader, Writer
- CharArrayReader, Writer
- PipedReader, Writer
- StringReader, Writer
5. 문자기반 보조스트림