本帖最后由 杨文宇 于 2012-8-10 23:44 编辑
System.out.println 能重定向到别的输出流,这样的话你在屏幕上将看不到打印的东西了,如重定向输出到一个txt的log日志中。
System.err.println只能在屏幕上实现打印,即使你重定向了也一样。
使用err打印出的字符串,在eclipse的控制台中会显示成红色。(也算区别吧.....)
另外:
一个小程序
class Test{
public static void main(String[] args) {
for(int i = 1;i<=10000;i++){
System.out.println(1000/(800-i)+i);//先多次运行out
//System.err.println(1000/(800-i)+i);//在多次运行system.err
}
}
}
运行多次会发现:用out输出时打印出的错误位置会不同,还会输出错误后面的数据。而err始终能定位到错误。
所以:
err是运行期异常和错误反馈的输出流的方向。
err在调试程序总是能精确的找到出错位置,并且停止运行。
而out在调试程序时想要发现出错的位置可能就比较麻烦了,这应该与java虚拟机和操作系统有关。
|