2015-11-12 33 views
1

嗯,我知道這是一個非常基本的問題,但不知何故我無法弄清楚。當最後一行不包含換行符時,從Std輸入中讀取最後一行

我有類似的輸入,以說:

line1 
line2 
line3 
line4 

所有線具有除已按下LINE4即末尾的新行字符除了LINE4每行之後ENTER鍵。現在,如果我將此作爲輸入提供給BufferedReader,它只讀出前3行並跳過最後一行。

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
String line; 
while((line=br.readLine())!=null){ 
    System.out.println(line); 
} 

這是我正在嘗試使用的代碼。我不認爲代碼有任何問題,最後一行沒有新行導致問題。

有人可以幫助我這個。

+1

'readLine()'顧名思義,讀取一行。直到你按下回車鍵之後纔會有線(程序如何知道你不會按下更多按鍵?) – TMG

+0

是的,正確的......那麼如何去處理這樣的情況呢......我們決不能讀出最後一行。 。我將這整個東西複製到程序的輸入中,並且它開始運行而不允許我按下輸入 –

+0

在您的示例中,輸入「line4」後,您如何向程序指明您已完成輸入? – Kenster

回答

0

BufferedReader's readLine() javadoc

讀取一行文本。一條線被換行符('\ n'),回車符('\ r')或回車符 中的任意一個 被認爲是由一個換行符緊接。

意思是,如果你想「讀」一行,它必須有上面提到的那些字符之一。