java
public static void main(String[] args) {
System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(4);
System.out.println(5);
System.err.println(-1);
System.out.println(6);
System.out.println(7);
System.out.println(9);
System.out.println(10);
System.out.println(11);
System.err.println(-2);
System.out.println(12);
System.out.println(13);
System.out.println(14);
System.out.println(15);
System.err.println(-3);
System.out.println(16);
System.out.println(17);
System.out.println(18);
System.out.println(19);
System.out.println(20);
}
console result:
1
2
3
4
5
-1
-2
-3
6
7
9
10
11
12
13
14
15
16
17
18
19
20
reason:
大多数操作系统都有三个标准文件描述符:标准输入,标准输出,标准出错。
对应Java中的System.in,System.out,System.err。
System.out.println 能重定向到别的输出流,比如输出到txt文本中;
而System.err.println只能在屏幕上实现打印,即便重定向也一样。
System.out.println有可能在缓存中,由OS和JVM决定是否输出,
而System.err.println它将每一次操作的结果都输出来,
在eclipse控制台输出时,System.err.println输出的内容是红色的。
err是运行期异常和错误反馈的输出流的方向
System.err.println只能在屏幕上实现打印,即使你重定向了也一样
用err打印出的 字符串,再eclipse的console会显示成红色
标准输出往往是带缓存的,而标准出错没有缓存(默认设置,可以改 how???)