Java基础——System.out.print与System.err.print区别
2019-02-12 15:40
337 查看
版权声明:【版权所有 翻版必究】博客千万条 版权第一条 转载不规范 侵权两行泪 https://blog.csdn.net/qq_32730819/article/details/87075464
2019春节假期后开工,首先祝各位猪年大吉、诸事顺利、心想事成!开始想写一个DEMO练练手,想了想写个冒泡排序吧。代码基本OK,发现一个与自己预想不一致的一个问题,整理一下原因。
[code]package algorithm; import java.sql.Array; /** * 冒泡排序算法 * * @author XUQIANG_DUAN * @date 2019/2/12 * @time 9:39 */ public class BubbleSort { /** * 打印数组信息 * @param state //状态:排序前/后 * @param array */ public static synchronized void print(String state, Integer[] array){ System.err.print(state+"数组为:"); for(int i = 0; i < array.length; i++){ System.out.print(array[i]+" "); } System.out.println(); } /** * 冒泡排序方法 * @param array * @return */ public static synchronized Integer[] bubbleSort(Integer[] array) { BubbleSort.print("排序前", array); for (int i = 0; i < array.length - 1; i++) { for (int j = i + 1; j < array.length; j++) { //前大于后,交换 if(array[i] > array[j]){ array[i] = array[i] + array[j]; array[j] = array[i] - array[j]; array[i] = array[i] - array[j]; } } } BubbleSort.print("排序后", array); return array; } public static void main(String[] args){ Integer[] array = {111,23,44,55,77,99,0,3,897}; BubbleSort.bubbleSort(array); } }
输出结果如下:
[code]//输出结果如下: 排序前数组为:111 23 44 55 77 99 0 3 897 排序后数组为:0 3 23 44 55 77 99 111 897
为了强调输出语句中的状态信息(使用红色输出),将 System.out.print(state+"数组为:"); 更为 System.err.print(state+"数组为:"); 结果就有点凌乱了,如下图:
随后单独测试System.out与System.err寻找原因,具体细节如下:
[code] public static void main(String[] args){ System.err.println("E1 This is err!"); System.out.println("O1 This is out!"); System.err.println("E2 This is err!"); System.out.println("O2 This is out!"); System.err.println("E3 This is err!"); System.out.println("O3 This is out!"); } //第一次运行结果: E1 This is err! O1 This is out! O2 This is out! E2 This is err! O3 This is out! E3 This is err! //第二次运行结果: O1 This is out! E1 This is err! O2 This is out! E2 This is err! O3 This is out! E3 This is err! public static void main(String[] args){ System.out.println("O1 This is out!"); System.err.println("E1 This is err!"); System.out.println("O2 This is out!"); System.err.println("E2 This is err!"); System.out.println("O3 This is out!"); System.err.println("E3 This is err!"); } //又一次运行结果 O1 This is out! E1 This is err! O2 This is out! E2 This is err! O3 This is out! E3 This is err! //再一次运行结果 O1 This is out! O2 This is out! O3 This is out! E1 This is err! E2 This is err! E3 This is err!
为什么呢?System.out与System.err具体的区别是?整理一下,仅供参考。
名称 | 用途 | 输出显色颜色 | 缓存功能 | log4j日志记录 |
---|---|---|---|---|
System.out | 标准输出 | 黑色字体 | 缓存 | 会 |
System.err | 标准错误输出 | 红色字体 | 实时 | 不会 |
备注:System.out和System.err都能重定向到别的输出流中输出,此时控制台console区域不输出内容。
[code]public static void main(String[] args) throws Exception { System.setOut(new PrintStream(new FileOutputStream(new File("C:/Users/xuqiang_duan/Desktop/out.log")))); System.setErr(new PrintStream(new FileOutputStream(new File("C:/Users/xuqiang_duan/Desktop/err.log")))); System.out.println("O1 This is out!"); System.err.println("E1 This is err!"); System.out.println("O2 This is out!"); System.err.println("E2 This is err!"); System.out.println("O3 This is out!"); System.err.println("E3 This is err!"); }
PS:以上内容为个人理解(其中代码已全部实测),能力有限请各位多多指教,非常感激!
相关文章推荐
- 【转】Java基础:System.out.println与System.err.println的区别
- Java学习-System.out.println,system.out.print,system.out.printf的区别
- java中的System.out.println和System.err.println的区别
- java中的“System.out.println“和“System.err.println”的区别是什么
- java中的System.out.print()与System.out.println()的区别
- 浅谈Java的System.out.print与System.out.println的区别
- java中的“System.out.println“和“System.err.println”的区别是什么
- java基础(System.err和System.out)
- java基础(System.err和System.out)
- java基础(System.err和System.out)详解
- JAVA控制台输出System.out.print
- JAVA控制台输出System.out.print
- System.out.println和System.err.println的区别
- System.err与System.out区别(IO操作)
- java --System.err和System.out
- Java在Mac OS X终端(Terminal.app)下 system.out.print 乱码的问题
- java中的system.out.println()和JSP中out.println()区别
- System.out.println与System.err.println的区别
- Java基础之System.out.println()解析
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(一)Java语言中System.out.print与Log的比较