프로그래밍 정리/자바

Java Stream(자바 스트림)

주누다 2013. 6. 17. 18:15
반응형

- 프로그램에서 사용하는 데이터는 파일일 수도 있으며 메모리일 수도 있음. 그리고 각종 하드웨어적인 입출력 장치에 존재할 수도 있음. 이렇게 다양한 장소에 존재하는 데이터들을 핸들하기 위해서는 입출력 데이터를 처리하는 공통된 방법이 있어야함.

-> 입출력을 위한 공통된 방법

=> 다양한 장소에 존재하는 데이터들을 핸들하기 위해서는 입출력 데이터를 처리하는 공동된 방법이 있어야함.


- 만약 입출력 데이터를 처리하는 공통된 방법이 없다면 여러분은 각각의 하드웨어 장치에 직접 접근해서 데이터를 읽고 기록해야함. 키보드로부터 데이터를 읽기 위해 키보드가 동작하는 원리를 알아야 하며, 하드디스크에 있는 파일을 읽거나 기록하기 위해서 하위레벨의 하드 디스크를 알아야함.


이러한 불편을 없애기 위해서 자바에서는 스트림(Stream)이라는 기법을 제공.

자바에서 제공하는 스트림 메카니즘을 이용하면 입출력 장치가 무엇이든 상관하지 않고 데이터를 읽거나 기록할 수 있음.

사용자는 단지 스트림을 상대로 작업하면 되는 것임. 하드웨어적인 요소들은 스트림이 알아서 해주며, 데이터를 읽거나 기록하기 위해서 스트림만 제어하면 됨. 


즉, 스트림이란 자료의 입출력을 도와주는 중간 매개체 역할을 하며, 데이터를 처리하는 공통된 방법을 제공.

-> 스트림(Stream)의 정의

=> 자료의 입출력을 도와주는 중간 매개체


- 스트림은 자바에서 데이터의 입출력을 담당하는 중간자 역할을 하게 됨. 스트림에 연결되는 입출력 장치(Device)는 다음과 같이 다양한 현태로 존재할 수 있음.

-> 입출력 장치

=> 파일 디스크(파일)

=> 키보드, 모니터, 마우스

=> 메모리

=> 네트워크


- 이러한 현태의 입출력 장치에 데이터를 기록하고, 읽어들이기 위해서 각각의 스트림이 존재. 자바 입출력을 배운다는 것은 바로 각각의 장치에 연결되는 스트림을 이용해서 데이터를 읽고 기록하는 방법을 배우는 것. 

반응형

'프로그래밍 정리 > 자바' 카테고리의 다른 글

스트림의 원리  (0) 2013.06.18
스트림(Stream)이란?  (0) 2013.06.17
synchronized의 한계  (0) 2013.06.17
synchronized의 활용  (0) 2013.06.17
synchronized  (0) 2013.06.17