java基础(System.err和System.out)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基础(System.err和System.out)相关的知识,希望对你有一定的参考价值。
今天有位同事在使用System.err和System.out遇上了一些小问题.
看了些资料总结下:
1.JDK文档对两者的解释:
out: “标准”输出流。此流已打开并准备接受输出数据。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。
err: “标准”错误输出流。此流已打开并准备接受输出数据。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。按照惯例,此输出流用于显示错误消息,或者显示那些即使用户输出流(变量 out
的值)已经重定向到通常不被连续监视的某一文件或其他目标,也应该立刻引起用户注意的其他信息。
2.out和err的一个区别是,out往往是带缓存的,而err没有缓存(默认设置,可以改)。所以如果你用标准出错打印出来的东西可以马上显示在屏幕,而标准输出打印出来的东西可能要再积累几个字符才能一起打印出来。如果你在应用中混用标准输出和标准出错就可能看到这个问题。
测试代码:
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是蓝色的。
以上是关于java基础(System.err和System.out)的主要内容,如果未能解决你的问题,请参考以下文章
命令中的“2”是啥,同时将 System.out , System.err Java 消息重定向到文件 [重复]
Android开发—错误记录1:W/System.err: java.net.ConnectException: Connection refused
java 主メソッドのJUnit的サンプル.System.Exitのコードの确认。标准出力(的System.out,System.err的)の取得。
System.err:java.io.FileNotFoundException:WAOSA_URL:打开失败:ENOENT(没有这样的文件或目录)-视频文件
System.out.println 和 System.err.println 乱序
Android SQLite:W / System.err:java.io.FileNotFoundException无法从资产复制数据库