所有的Java程序自动导入java.lang包。该包定义了一个名为System的类,该类封装了允许时环境的多个方面。例如,使用它的某些方法,你能获得当前时间和与系统有关的不同属性。System同时包含三个预定义的流变量: in、out、err。 这些成员在System中是被定义成public和static型的,着意味着它们可以不引用特定的System对象而被用于程序的其他部分。
System.out 是标准的输出流。默认情况下,它是一个控制台。System.in是标准输入,默认情况下,它指的是键盘。System.err指的是标准错误流,它默认是控制台。然而,这些流可以重定向到任何兼容的输入/输出设备。
System.in 是inputStream的对象; System.out 和System.err是PrintStream的对象。它们都是字节流,尽管它们用来读写外设的字符。 如果愿意,你可以用基于字符的流来包装它们。
一个例子:
import java.io.*;
public class ReadTest {
public static void main(String[] args) throws IOException {
char c;
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
System.out.print("Please input:");
do {
c = (char)br.read();
System.out.print(c);
}
while (c != 'q');
}
}
B.T.W. : System.in 在默认情况下是以行来缓冲的,着意味着在你键入Enter以前实际上是没有输入的。