大可制作:QQ群:31564239(asp|jsp|php|mysql)

Java Gossip: 标准输入输出串流

在之前的HelloWorld程序中,您使用了System类中的静态对象out,它提供标准输出串流(Stream),会在程序开始执行之后自动开启 并准备接受指定的数据,它通常对应至显示输出(Console、终端机输出)或其它的输出目的地,它可以被重定向至一个文件,您可以在执行程序时使用 '>>'将输 出结果导向至指定的文件,例如:
 java HelloWorld >> output.txt

上面的执行会将结果导向至output.txt,而不会在荧幕上显示"Hello! World!",output.txt中将会有输出结果"Hello! World"!。

除了标准输出串流out之外,Java程序在执行之后,还会开启标准输入串流in与标准错误输出串流err,下面先说明标准输入串流in

标准输入串流in也是用System类所 提供的静态对象,在程序开 始之后它会自动开启,对应至键盘或其它的输入来源,准备接受使用者或其它来源的输入,您可以使用read()方法来读取输入,不过通常很少直接使用它,而 会使用一个Scanner对象为输入串流作后处理,方法在 取得使用者输 入

标准错误输出串流err也是 在程序执行后自动开启,它会将指定的字符串 输出至显示装置或其它指定的装置,与标准输出串流out不同的是,它会立即显示指定的(错误)讯息给使用者知道,例如即使您指定程序将结果重定向至文件,err输出串流的讯息并不会被重定向,而仍会显示在指定的显示装置上,下面这个例子给您一个简单的测试方式:
简介过了。
  • HelloWorld.java
public class HelloWorld { 
public static void main(String[] args) {
System.out.println("Hello! World!");
System.err.println("Error Message Test");
}
}

在编译程序之后,请如下执行程序,您会发现输出结果如下:
java HelloWorld >> output.txt
Error Message Test


开启output.txt之后,您会发现当中只有"Hello! World!"讯息,而Error Message Test讯息并没有被导向至文件中,而是直接显示在Console(或终端机)中。

要 重定向标准输出是用 '>', 标准输入则是 '<', 而 '>>' 除了重导标准输出之外,还有附加的功能,也就是会把输出附加到被导向的目标文件后头,如果目标文件本来不存在,那么效果就和 '>' 一样。