2016-11-25 132 views
0

我在寫一些代碼,它會從文本文件中提取名稱和ID。爲此,我正在使用while循環。看起來,while循環條件總是正確的,並且程序永遠不會跳出while循環。代碼如下所示任何幫助將不勝感激。謝謝。bufferedReader.readLine()永遠不會等於null

while((line = br.readLine()) != null) { 
      line = br.readLine(); 
      endOfFirstName = line.indexOf(","); 
      first_name = line.substring(0, endOfFirstName); 
      endOfLastName = line.indexOf(" "); 
      last_name = line.substring(endOfFirstName + 1, endOfLastName); 
      id = line.substring(endOfLastName + 1); 
     } 

回答

0

這種情況

while((line = br.readLine()) != null) 

用於處理一個流的結局/閉合 -

From the docs

包含該行的內容,字符串不包括任何行結束字符,如果已到達流尾,則返回null。

您必須處理您自己的循環終止 - 取決於您認爲循環接近的值。

即在一個標準的HTTP請求中,這是由一個空白的換行符完成的。

編輯

您還丟棄每隔一行從信息流

刪除多餘的

line = br.readLine(); 

由於這是已經被循環處理。

+0

您是否知道我應該使用的條件,以便在文件結束後停止閱讀? –

+0

讀我編輯,先嚐試一下。你扔掉了文件的其他所有行。 –

+0

我明白了。我添加了「BREAK」,我想要跳出循環並將條件設置爲while(!(br.readLine()。equals(「BREAK」))。但是,它仍然不會出現。 –