아이티클래스

자바스트림

 

자바(java) 스트림(stream)

스트림(stream)이란 데이터의 흐름이라고 할 수 있다. 우리는 스트림이라는 통로를 통해 원하는 데이터를 보내기도 하고 받기도 하는 것이다. 지금까지 사용했던 System.out도 스트림의 일종으로서 우리는 System.out이 제공하는 메소드인 println( )을 통해 문자열을 화면에 출력했다.

 

이처럼 스트림은 근원지(source)와 목적지(destination)을 가진다. 화면에 문자열을 출력할 때의 목적지는 모니터가 될 것이며 근원지는 프로그램이 될 것이다. 이처럼 자료가 어디서 어떻게 흐르냐에 따라 스트림을 입력 스트림출력 스트림으로 분류할 수 있다.

 

프로그램이 근원지(source)에 있는 데이터를 읽기 위해서는 근원지에 대한 스트림을 열고 순차적으로 데이터를 읽어온다. 근원지는 디스크, 메모리가 될 수 있을 것이다.

 

프로그램이 데이터를 보내기 위해서는 목적지(destination)의 스트림을 열고 데이터를 순차적으로 보내 기록한다. 여기서 목적지는 근원지와 마찬가지로 디스크, 메모리가 될 수 있다.

 

스트림은 데이터를 나르는 통로같은 역할을 한다는 것을 알았다. 그렇다면 왜 스트림을 사용할까? 스트림을 사용하게 되면 근원지(source)나 목적지(destination)에 상관없이 항상 똑같은 절차를 통해 데이터를 쓰고 읽을 수 있기 때문이다.

 

java.io 패키지에는 스트림과 관련된 많은 클래스들이 있는데 이들 클래스들은 데이터의 종류에 따라 크게 바이트 스트림(Byte 스트림)문자 스트림(Character stream)으로 분류할 수 있다.

 

바이트 스트림

8bit 바이트를 읽거나 쓰기 위한 것이다.
이진 데이터를 읽고 쓰는데 많이 사용된다.
최상위 추상 클래스는 InputStream, OutputStream 이다.

 

문자 스트림

16bit 문자를 읽거나 쓰기 위한 것이다.
Unicode 문자 세트에 존재하는 모든 문자를 처리할 수 있다.
최상위 추상 클래스는 Reader, Writer 이다.

 

 

제가 작성한 글이 도움이 되셨다면 ♥공감을 꾹 눌러주세요

 

도움이 필요한 내용이 있으시다면 댓글도 남겨주세요

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band