java基础(System.err和System.out)详解

网友投稿 424 2023-05-06


java基础(System.err和System.out)详解

今天有http://位同事在使用System.err和System.out遇上了一些小问题.

看了些资料总结下:

1.JDK文档对两者的解释:

out:“标准”输出流。此流已打开并准备接受输出数据。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。

err:“标准”错误输出流。此流已打开并准备接受输出数据。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。按照惯例,此输出流用于显示错误消息,或者显示那些即使用户输出流(变量 out 的值)已经重定向到通常不被连续监视的某一文件或其他目标,也应该立刻引起用户注意的其他信息。

2.out和err的一个区别是,out往往是带缓存的,而err没有缓存(默认设置,可以改)。所以如果你用标准出错打印出来的东西可以马上显示在屏幕,而标准输出打印出来nmiqClRmFW的东西可能要再积累几个字符才能一起打印出来。如果你nmiqClRmFW在应用中混用标准输出和标准出错就可能看到这个问题。

测试代码:

public class Test2 {

static{

System.out.println("1");

}

public static void main(String[] args) {

System.err.println("2");

new Test2();

}

public Test2() {

System.out.println("3");

}

}

测试结果: 1,3的位置相对不变,2的位置随机出现.尽量避免混用!

3.如果使用了log4j的日志记录,System.err会被记入日志,System.out不会

ps:打印System.err在eclipse是红色的。System.out是蓝色的。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:第三方mock工具(mock官方文档)
下一篇:Redis 订阅发布_Jedis实现方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~