隨筆 - 11  文章 - 33  trackbacks - 0
          <2007年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章檔案

          搜索

          •  

          最新隨筆

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          今天在做測(cè)試的時(shí)候發(fā)現(xiàn)為了醒目用System.err打出來的信息和普通的System.out打出來的信息的順序出乎我的意料之外,納悶之下google之。發(fā)現(xiàn)兩者還是很有區(qū)別的。。。

          大多數(shù)操作系統(tǒng)都有三個(gè)標(biāo)準(zhǔn)文件描述符:標(biāo)準(zhǔn)輸入,標(biāo)準(zhǔn)輸出,標(biāo)準(zhǔn)出錯(cuò)。

          三個(gè)操作系統(tǒng)的文件描述符映射到編程語言的標(biāo)準(zhǔn)庫中,往往加了一層包裝,但是名字通常還是叫標(biāo)準(zhǔn)輸入,標(biāo)準(zhǔn)輸出,標(biāo)準(zhǔn)出錯(cuò)。

          在其它語言中的一般寫法是:stdin,stdout,stderr(有的語言里大寫,有的語言里小寫)。對(duì)應(yīng)Java中的System.in,System.out,System.err。

          在語言層面的實(shí)現(xiàn)三個(gè)文件描述符都是可以重定向的(只要你想)。但是一般而言,如果你在unix shell或windows command line中使用管道或重定向,則只是針對(duì)標(biāo)準(zhǔn)輸入和輸出。

          另外,標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)出錯(cuò)的一個(gè)區(qū)別是,標(biāo)準(zhǔn)輸出往往是帶緩存的,而標(biāo)準(zhǔn)出錯(cuò)沒有緩存(默認(rèn)設(shè)置,可以改)。所以如果你用標(biāo)準(zhǔn)出錯(cuò)打印出來的東西可以馬上顯示在屏幕,而標(biāo)準(zhǔn)輸出打印出來的東西可能要再積累幾個(gè)字符才能一起打印出來。如果你在應(yīng)用中混用標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)出錯(cuò)就可能看到這個(gè)問題。

          總的來說,System.out用于正常的輸出,也就是程序真正想輸出的內(nèi)容。而System.err用于出錯(cuò)信息的輸出,也就是你本來不期待看到的東西。

          因此,System.err打出來的信息常常會(huì)跑到System.out信息的前面去。。。
          posted on 2007-09-12 10:40 teasp 閱讀(1373) 評(píng)論(4)  編輯  收藏 所屬分類: Java學(xué)習(xí)

          FeedBack:
          # re: System.err與System.out的區(qū)別 2007-09-17 17:55 匿名
          我也納悶?zāi)?nbsp; 回復(fù)  更多評(píng)論
            
          # re: System.err與System.out的區(qū)別[未登錄] 2007-10-30 21:18 Sunny
          # re: System.err與System.out的區(qū)別 2008-10-13 20:42 key_hua
          # re: System.err與System.out的區(qū)別 2008-11-18 14:40 ZLCIsOnly
          謝了 很好  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 平塘县| 定远县| 隆安县| 广河县| 石河子市| 铜鼓县| 博湖县| 寻甸| 金门县| 嵊泗县| 逊克县| 卢龙县| 新密市| 辽源市| 鄂尔多斯市| 镇远县| 曲阜市| 南京市| 招远市| 金溪县| 容城县| 丹凤县| 长兴县| 碌曲县| 绥芬河市| 汝城县| 保德县| 雅江县| 遵化市| 禹州市| 错那县| 定州市| 阿城市| 威海市| 耒阳市| 紫阳县| 金昌市| 壤塘县| 潜江市| 临颍县| 鱼台县|