看板 java 關於我們 聯絡資訊
因為很少用到IO這個部分,觀念有點不太清楚 小弟嘗試寫了以下的Code 大致如下 BufferedReader theReader = new BufferedReader(new InputStreamReader(System.in)); char readTemp[] = new char[10]; j = theReader.read(readTemp); 我看JAVA API上說的是 The number of characters read, or -1 if the end of the stream has been reached 想請教各位~"~ 我現在假設輸入apple 回傳j為什麼會是7?? 什麼都不輸入 直接按enter 回傳值是2 我Google了一下,在想應該是Enter的問題,可是為什麼apple不是回傳6呢? (5+1?) 還是說Enter的\n這樣算是兩個characters?? 我嘗試了一下把readTemp的值印出來 for(readTemp length) System.out.println(ReadTemp: "+readTemp[i]); 結果會出現 ReadTemp:a ReadTemp:p ReadTemp:p ReadTemp:l ReadTemp:e ReadTemp: ReadTemp: ReadTemp: ReadTemp: ReadTemp: 小弟我不了解為什麼會有空兩次格?? 另外一個問題是~API中所說的回傳-1 The end of Stream 意思是?? 請問可以幫忙舉個範例嗎?? 還是要讀file才會發生這個-1? (我猜應該不是一_一") -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.47.30.191
iFEELing:如果你是windows 或許是CRLF 05/04 12:12
PsMonkey:帳面上完全合理阿... 5+2=7 05/04 12:22
LPH66:就是一樓說的 CRLF (CR 是 '\r' = 13, LF 是 '\n' = 10) 05/04 12:23
LPH66:另外 end of stream 在 Win 提示字元中輸入 Ctrl-Z 也可產生 05/04 12:25
LPH66:當然讀檔的話就是讀到檔案結尾就會出現了沒錯 05/04 12:27
fonz:了解了~!謝謝各位!! 05/04 12:34
gmoz:你的輸入或文字檔是來自windows或M$的話 斷行就是\r\n了XD 05/05 15:26
Killercat:唉這東西就跟printstream問題差不多大.... 05/05 20:38