2016-11-25 36 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”))。但是,它仍然不会出现。 –