繁体   English   中英

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

[英]bufferedReader.readLine() will never equal null

我正在编写一些代码,该代码将从文本文件中提取名称和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);
        }

这种情况

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

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

从文档

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

您必须处理自己的循环终止-取决于您认为值得循环关闭的条件。

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

编辑

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

删除多余的

line = br.readLine();

因为这已经由循环处理了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM