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

 

Posted by
,