楼主的认识不完全正确。
java依照标准I/O模式提供了System.in,System.out,和System.err。
System.in是未经包装的原始Input Stream
System.out和System.err都是PrintStream
所以,你可以直接使用System.out和System.err来实现控制台标准输出
而使用System.in之前要加以包装

解决方案 »

  1.   

    多谢了那改个说法:
     
    标准控制台输入只可以使用JAVA的预定义对象,即:System.in,System.out,和System.err即使是要附加其他功能(比如实现缓冲),也只能通过对这些预定义对象进行“包装”来实现。这几个预定义对象没有替代者,你也不能去创建他们。当然,可以对他们进行引用,比如:InputStream x=System.in;   //ok----------------------------------------------对吗??
      

  2.   

    这几个预定义对象没有替代者,你也不能去创建他们。
    ======
    这种包装是java的io体系的一大特色,也体现了OO的思想。
    奇怪,你要“创建”它们做什么呢?
    至于象
    InputStream x=System.in;
    虽然语法正确,却是一种奇怪的写法。