楼主的认识不完全正确。
java依照标准I/O模式提供了System.in,System.out,和System.err。
System.in是未经包装的原始Input Stream
System.out和System.err都是PrintStream
所以,你可以直接使用System.out和System.err来实现控制台标准输出
而使用System.in之前要加以包装
java依照标准I/O模式提供了System.in,System.out,和System.err。
System.in是未经包装的原始Input Stream
System.out和System.err都是PrintStream
所以,你可以直接使用System.out和System.err来实现控制台标准输出
而使用System.in之前要加以包装
标准控制台输入只可以使用JAVA的预定义对象,即:System.in,System.out,和System.err即使是要附加其他功能(比如实现缓冲),也只能通过对这些预定义对象进行“包装”来实现。这几个预定义对象没有替代者,你也不能去创建他们。当然,可以对他们进行引用,比如:InputStream x=System.in; //ok----------------------------------------------对吗??
======
这种包装是java的io体系的一大特色,也体现了OO的思想。
奇怪,你要“创建”它们做什么呢?
至于象
InputStream x=System.in;
虽然语法正确,却是一种奇怪的写法。