bufferedReader.readLine()永远不会等于null

时间:2016-11-25 21:46:55

标签: android bufferedreader

我正在编写一些代码,用于从文本文件中提取名称和ID。要做到这一点,我使用while循环。似乎while循环条件始终为true,程序永远不会中断while循环。代码如下所示。任何帮助将不胜感激。感谢。

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);
        }

1 个答案:

答案 0 :(得分:0)

这个条件

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

用于处理结束/关闭的流 -

From the docs

  

包含行内容的字符串,不包括任何行终止字符;如果已到达流的末尾,则为null。

您必须处理自己的循环终止 - 取决于您认为循环接近的值。

即。在标准HTTP请求中,这是由空白换行符完成的。

修改

您还要丢弃流中的所有其他行

删除额外的

line = br.readLine();

因为循环已经处理了这个问题。