System.err和System.out的区别
在 java API,文档中给出的解释是:out为“标准输出流”,err为“标准错误输出流”
大多数操作系统都有三个标准文件描述符:标准输入,标准输出,标准出错。
三个操作系统的文件描述符映射到编程语言的标准库中,往往加了一层包装,但是名字通常还是叫标准输入,标准输出,标准出错。
在其它语言中的一般写法是:stdin,stdout,stderr(有的语言里大写,有的语言里小写)。对应Java中的System.in,System.out,System.err。
我们使用out和err的时候最直观的感觉就是
- err.print()出来的字是红色的
- out与err打印的不固定
前一个好理解,那么为什么打印的顺序会不一样呢 让我们先试一下
public static void main(String[] args) {
System.err.println("err------1");
System.out.println("ok1");
System.err.println("err------2");
System.out.println("ok2");
}
多试几次发现的确如此
查阅资料发现
System.out.println 能重定向到别的输出流,比如输出到txt文本中;
而System.err.println只能在屏幕上实现打印,即便重定向也一样。
System.out.println有可能在缓存中,由OS和JVM决定是否输出,而System.err.println它将每一次操作的结果都输出来。
在ide控制台输出时,System.err.println输出的内容是红色的。
对于我们而言在调试程序的时候尽量使用out来输出,这样可以很清晰的定位到任何一个步骤,而err输出的位置顺序很可能和你期望的不一样。
正文到此结束
相关文章
热门推荐
评论插件初始化中...