關于字符流的輸出問題
有一個問題:
while((c=isr.read(buf, 0, buf.length))!=-1){
String s = new String(buf, 0, c);
System.out.println(s);
為什么要把字符數組轉換成字符串輸出,這跟直接輸出字符數組的結過時一樣的?
有一個問題:
while((c=isr.read(buf, 0, buf.length))!=-1){
String s = new String(buf, 0, c);
System.out.println(s);
為什么要把字符數組轉換成字符串輸出,這跟直接輸出字符數組的結過時一樣的?
2016-05-05
舉報
2016-06-06
跟直接輸出字符數組的結果是不一樣的。至于為什么要轉換成字符串輸出個人認為是因為是如果是你單單拿字符數組來輸出的時候由于字符數據之間沒有明顯的分隔的界限,導致輸出的字符是不一致的。而c是返回的是讀到的字符的個數,用String來轉換成所讀到的字符來輸出就可以很明顯的分隔出來。以上只是個人愚見,有些地方說的可能不太清楚,歡迎來指正與討論
2016-07-19
當然不一樣啦,數組對象并沒有實現toString()方法,當你直接把字節數組放到print中打印時,打印的是一個個的地址(應該是指向數組內對象的地址)。如果想直接打印,可以使用Arrays工具類,利用工具類中的toString()方法,Arrays.toString(c),但是這樣寫其實同樣是把字節數組轉化成了string,具體可以去看下api中的說明
2016-05-06
字符串就是字符數組