'Stream'에 해당하는 글 1건

Stream은 장치(device)로부터 데이터를 입/출력할 수 있게 합니다.
장치에는 파일, 키보드, 모니터, 마우스, 메모리, 네트워크 등이 해당됩니다.

 

 

Stream의 구분

 

  • 문자 단위로 처리하는 문자 스트림(Reader/Writer)
  • 바이트 단위로 처리하는 바이트 스트림(InputStream/OutputStream)

 

 

이 중 표준 입출력 스트림은 이미 지금껏 많이 사용해 왔습니다.
System.out / System.in / System.err
표준 입출력(Standard IO)이란 장치를 특별히 지정하지 않았을 때 사용되는 것입니다.
이들은 System 클래스에 static 멤버로 선언되어 있기 때문에 어디서나 즉시 사용할 수 있습니다.

 

package java.lang;
public class System {
    public static PrintStream out;
    public static InputStream in;
    public static PrintStream err;
}

 

위에서 out과 err는 PrintStream형으로 자료형까지 같지만 둘의 차이점은,
err로 출력되는 것은 리다이렉트(Redirect)되지 않고 콘솔에서만 확인이 가능하다는 것입니다.

 

아래는 데이터의 입력과 출력을 보여주는 간단한 예입니다.

 

import java.io.*;
public class StandardIO 
{
	public static void main(String[] args) throws IOException
	{
		// 한 글자를 입력받아 i에 할당
		int i = System.in.read();
		System.out.println(i);
	}
}

/*
$ java StandardIO
a
97
*/

 

위 예는 하나의 타이핑을 입력받고 엔터를 누르면 아스키 코드값을 출력하는 예입니다.
System.out.read() 를 사용하면 반드시 에러처리를 해주어야 합니다.
위의 예처럼 한 글자만이 아닌 여러 글자를 처리하려면 main 부분을 아래처럼 변경합니다.

 

int i;
// 엔터가 입력될 때까지
while( (i=System.in.read()) != '\n' ) {
	// 아스키코드 숫자를 문자로 변경
	System.out.print( (char)i );
}

/*
$ java StandardIO
hello
hello
*/


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,