티스토리 뷰
개념
JAVA 프로그램에서 데이터를 읽고 쓰는 작업을 할 때 스트림이 필요합니다. 스트림은 단방향으로만 작동하며 마우스, 키보드, 파일 등 입력장치에서 읽어들이는것을 input stream 모니터, 파일 등 출력할때는 output stream을 이용합니다.
JAVA IO stream은 크게 Byte 스트림 클래스와 Character(문자) 스트림 클래스로 나뉩니다.
ByteIOStream의 특징
- ByteIOStream의 기본 단위는 Byte
- 단방향 구조를 가지고 있음
- FIFO 구조
inputStream : 입력장치로부터 자바 프로그램으로 데이터를 전달하는 software module
outputStream : 자바프로그램에서 출력장치로 데이터를 전달하는 software moduel
Byte IO stream
입출력되는 데이터를 단순 바이트의 스트림으로 처리합니다.
ex)바이너리 파일을 읽는 입력 스트림
InputStream 자식클래스는 모두 InputStream을 마지막에 붙이고있습니다.
OutputStream 자식클래스는 모두 OutputStream을 마지막에 붙이고있습니다.
System.out.println() 메소드는 OutputStream 하위클래스중 PrintStream클래스의 메소드를 이용한 것입니다.
FileInputStream
파일을 입출력 할 때 사용합니다.
ByteArrayInputStream
배열을 입출력 할 때 사용합니다.(배열은 메모리에 있으니 메모리 입출력해야함)
PipeInputStream
프로세스에서 데이터를 입출력 할 때 사용합니다.
StringBufferInputStream
버퍼를 이용하여 입출력합니다.
character IO stream
문자를 입출력하는 스트림입니다. 문자가 아닌 binary 데이터는 character stream에서 처리 할 수 없습니다.
ex)텍스트 파일을 읽는 입력 스트림
Reader
문자를 입력받고자 할 때 사용합니다.
하위클래스는 모두 Reader가 붙어있습니다.
Writer
문자를 출력 하고자 할 때 사용합니다.
하위클래스는 모두 Writer가 붙어있습니다. (딱하나 예외 OutputStreamReader만 다름)
OutputStreamReader 는 하위 클래스로 FileWriter라는 하위 클래스를 가지고있습니다.
Reader, Writer 모두 추상클래스로 하위클래스에서 구현됩니다.
'프로그래밍 언어 > Java Programming' 카테고리의 다른 글
URLConnection 으로 웹서버에 데이터 보내보기 (0) | 2016.10.22 |
---|---|
JAVA 왜 버퍼(buffer)를 사용해야 하나요? (0) | 2016.10.10 |
URL 클래스 (0) | 2016.09.20 |
Java 컬렉션(Collection) 정리 (0) | 2016.09.20 |
InetAddress class host name으로 정보 얻기 (0) | 2016.09.18 |