본문 바로가기

Developer/Java-oop

#026. I/O Stream 알아보기...

#026. I/O Stream 알아보기...

 

1. Stream 이란.. 아래 링크를 따라가서 확인해보자. ^^;

아래 박스 원본 출처: http://blog.naver.com/masa78/140052393774 (아래 내용 발췌)

Stream이란?

컴퓨터 상의 모든 프로그램, 입출력 기기(마우스, 키보드, 모니터, 프린터 등)는 서로 다른 플랫폼 위에 만들어져 있고, 다른 언어를 사용하고 있기도 합니다. 그렇다면, 이 프로그램들과 기계들 사이에서는 어떻게 서로 통신을 하게 될까요? 프로그램의 함수, 구성, 언어와 상관없이 모든 프로그램은 스트림(Stream)이라는 것을 통해서 서로 정보를 주고 받게 됩니다.

 

스트림은 자바에서만 지원하는 기능이 이니라. OS차원에서 지원하는 기능입니다.

예를 들어서 System.out.println("아하하하…"); 라는 명령으로 우리는 화면에 글씨를 띄울 수 있습니다. 여기에서 println이라는 메소드가 어떤 특정한 곳으로 글자를 스트림으로 쭉 뿌려주게 되죠. 그러면서 글씨가 화면에 표시되게 되는 겁니다.

 

여기에서 전달되는 데이터는 가장 하위 레벨에서

'01101011 01001010 10101010 11101101 …'

이런 식으로 바이트(바이너리)로 변환되어 입출력이 됩니다.

 

키보드 ----> 운영체제 ----> 프로그램

위의 그림? 글에서 ----> 이 부분이 바로 스트림이죠!

 

키보드에서 버튼을 누르면 운영체제가 이를 캐치하고 스트림을 워드 프로그램으로 보내주어 제가 이 글을 쓸 수가 있는 것입니다.

........

 

2. Stream 에는 읽기를 담당하는 inputStream, 쓰기를 담당하는 outputStream 이 있다.

inputStream 은 read() 메서드를 사용해서 데이터를 읽어오고, outputStream 은 write() 메서드를 사용해서 데이터를 작성한다.

java API URL: http://download.oracle.com/javase/6/docs/api/

1) inputStream 을 java API 에서 확인해보자.

설명

그림1: java.io 패키지를 선택, inputStream 클래스 선택, 우측에, inputStream 을 사용하는 클래스들이 있다.

그림2: inputStream은 read() 의 메서드 및 오버로딩 메서드들을 사용할 수 있다.

 

2) outputStream 을 java API 에서 확인해보자.

설명

그림1: java.io 패키지를 선택, outputStream 클래스 선택, 우측에, outputStream 을 사용하는 클래스들이 있다.

그림2: outputStream은 write() 의 메서드 및 오버로딩 메서드들을 사용할 수 있다.

 

자 그럼 우리는 input / output Stream 에 대해서 좀 알아봤다. 이 Stream 을 통해서 파일을 어떻게 제어 하는지 다음시간에 알아보자.

다음시간엔 FileInputStream / FileOutputStream 에 대해서 알아보자..

 

잡담. 강좌는 원래 그림으로 도배를 하는 건가요? ㅎㅎ 오늘도 화이팅 하세요~ ^^!