System.out.println与System.err.println的区别(输出顺序!!!)
分类:java
(208)
System.out.println与System.err.println的区别(输出顺序!!!)
今天看到网上别人写的代码中有一行System.err.println用来输出,以前从没用过,今天一用出了很多问题,总结如下:
err是运行期异常和错误反馈的输出流的方向System.err.println只能在屏幕上实现打印,即使你重定向了也一样用err打印出的 字符串,再eclipse的console会显示成红色标准输出往往是带缓存的,而标准出错没有缓存(默认设置,可以改)
参看以下代码了解
下面输出顺序如何?
1. public class TestCodeSeg
2. {
3. static 4. { 5. System.out.println("1"); 6. } 7. { 8. System.out.println("2"); 9. } 10. public TestCodeSeg() 11. { 12. System.err.println("3"); 13. } 14. public static void main(String[] args) 15. { 16. new TestCodeSeg(); 17. } 18. }
123456789101112131415161718192021
结果:1,2顺序不变,3输出不定位置不定。
原因:System.out.println输出有缓存,System.err.println是立即输出,可能在输出1或2,还没有输出换行时输出3。
转载于:https://www.cnblogs.com/w-wfy/p/5783837.html