亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于字符流的輸出問題

有一個問題:

while((c=isr.read(buf, 0, buf.length))!=-1){

String s = new String(buf, 0, c);

System.out.println(s);

為什么要把字符數組轉換成字符串輸出,這跟直接輸出字符數組的結過時一樣的?

正在回答

3 回答

跟直接輸出字符數組的結果是不一樣的。至于為什么要轉換成字符串輸出個人認為是因為是如果是你單單拿字符數組來輸出的時候由于字符數據之間沒有明顯的分隔的界限,導致輸出的字符是不一致的。而c是返回的是讀到的字符的個數,用String來轉換成所讀到的字符來輸出就可以很明顯的分隔出來。以上只是個人愚見,有些地方說的可能不太清楚,歡迎來指正與討論

0 回復 有任何疑惑可以回復我~
#1

模棱0 提問者

非常感謝!
2016-08-08 回復 有任何疑惑可以回復我~

當然不一樣啦,數組對象并沒有實現toString()方法,當你直接把字節數組放到print中打印時,打印的是一個個的地址(應該是指向數組內對象的地址)。如果想直接打印,可以使用Arrays工具類,利用工具類中的toString()方法,Arrays.toString(c),但是這樣寫其實同樣是把字節數組轉化成了string,具體可以去看下api中的說明

0 回復 有任何疑惑可以回復我~
#1

charsandrew

寫錯了,上面應該是Arrays.toString(buf)
2016-07-19 回復 有任何疑惑可以回復我~

字符串就是字符數組

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
文件傳輸基礎——Java IO流
  • 參與學習       133821    人
  • 解答問題       1060    個

為您介紹IO流的使用,以及對象的序列化和反序列化的內容

進入課程

關于字符流的輸出問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號