[問題] BufferedReader.read回傳
因為很少用到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
→
05/04 12:12, , 1F
05/04 12:12, 1F
推
05/04 12:22, , 2F
05/04 12:22, 2F
推
05/04 12:23, , 3F
05/04 12:23, 3F
→
05/04 12:25, , 4F
05/04 12:25, 4F
→
05/04 12:27, , 5F
05/04 12:27, 5F
→
05/04 12:34, , 6F
05/04 12:34, 6F
→
05/05 15:26, , 7F
05/05 15:26, 7F
推
05/05 20:38, , 8F
05/05 20:38, 8F