본문 바로가기

강좌/JAVA I/O

JAVA I/O (자바입출력) - 자바 스트림(Stream)

A. 스트림이란

    1. 스트림(Stream)은 파일이나 키보드, 모니터 등의 입출력 장치나 네트워크, 메모리등으로부터 데이터를 입출력할 때 사용하는 처리를 정의해 둔 것

    2. 스트림이라는 영어 어원처럼 (시냇물) 양방향이 아니고 단방향이다. 데이터 처리가 많을때는 지연 될 수도 있다.

 

B. Stream의 종류

 

    1.  바이트 스트림(byte stream) - 1바이트씩 전송

      * 존재 이유 : 컴퓨터는 2진수로 데이터 처리, 진수라는것은 bit를 의미 8bit가 1byte이므로 바이트 스트림 존재

      * 주로 하드웨어 접근 할때는 바이트 스트림으로 처리

      * 가장 큰 부모 클래스(추상) : InputStream, OutputStream

 

 

    2. 캐릭터 스트림(character stream) - 2바이트씩 전송

      *  문자 및 데이터를 보내고 할때 쉽게 하기 위해서 캐릭터 스트림을 사용 하지만 이것도 따지고 들어가면 내부적으로 바이트 스트림으로 처리.

      * 가장 큰 부모 클래스(추상) : Reader, Writer

 

결국 I/O처리 할때는 Input/Output/Reader/Writer는 부모 클래스로서 자식 클래스들이 상속 받는다.

자바 document에서 보면 여러 자식 클래스들이 있는데 누구를 상속했는지는 절대 외울 필요 없다.

자식 클래스의 이름은 항상 끝에 ~~inputstream, ~~outputstream으로 되어 있어서 이 클래스가 캐릭터스트림인지 바이트 스트림인지 알 수 있다.

자세한 내용은 자바API에서 확인 해보면 됨.

http://docs.oracle.com/javase/7/docs/api/