System 클래스는 아주 유용한 클래스변수가 있는데 in, out, err가 그것입니다.
in의 데이터형은 InputStream이고, out과 err의 데이터형은 OutputStream입니다.
out,err는 좀더 정확히 말한다면 OutputStream중에서도 PrintStream입니다.
in은 표준입력을 의미하고, out은 표준출력, err은 표준에러를 의미합니다.
in,out은 콘솔로 읽어들이는 스트림,콘솔로 출력하는 스트림을 의미합니다.
in은 추상클래스인 InputStream으로 되어있고, out,err은 추상클래스 OutputStream을
상속한 실제 객체인 PrintStream로 되어 있습니다.
이것 때문에 약간의 차이가 존재하는 데 in은 추상클래스 변수이어서 실제 객체가
아닙니다. 하지만 실제로 일을 하는 것은 객체이기 때문에 in을 가지고 실제로 일을
할 수는 없습니다. FilterInputStream등을 이용해서 in을 덮어 씌어(Wrapping) 주어야만
읽을 수 있습니다. out, err는 실제 객체인 PrintStream으로 되어 있고 실제의 객체가
존재하기 때문에 FilterOutputStream등으로 덮어 씌우지 않아도 바로 사용할 수 있습니다.
InputStream is = new BufferedInputStream(System.in);
int c = is.read();
예제 6 - 13
예제 6 - 13은 Wrapping을 통해서 표준 입력 (콘솔)로부터 데이터를 읽어내는 것을 보여
주고 있구요. 예제 6 - 14는 Wrapping을 하지 않고 표준 출력 (콘솔)로 데이터를 쓰는 것
을 보여주고 있습니다.
System.out.println("My Life For Aiur");
예제 6 - 14
'자바 Basic > 입출력(I/O)' 카테고리의 다른 글
자바공부-11.바이트스트림에서 캐릭터스트림으로 변환 (0) | 2007.12.11 |
---|---|
자바공부-10.기능성 읽고,쓰기 (0) | 2007.12.11 |
자바공부-9.자유로운 쓰기 (0) | 2007.12.11 |
자바공부-8.파일에서 읽고 쓰기 (0) | 2007.12.11 |
자바공부-7.메모리에서 읽고쓰기 (0) | 2007.12.11 |