首页 > 解决方案 > 读取文件直到行具有特定值

问题描述

我有一个具有以下架构的 csv 文件:

HEADER1
entry1
entry2
HEADER2
entry3
entry4
...

标头划分不同对象的条目。我创建了一个 BufferedReader 和两个 while 循环,我想遍历第一个 while 循环,直到下一行的值等于 HEADER2 的值(然后我想退出这个迭代并开始下一个迭代并创建不同的对象)。我的问题是写这个条件:

while ( !"MEETING_ROOMS".equals(line = reader.readLine())) || ((line = reader.readLine()) != null) {

这会返回一个“非法的表达式开始”错误。

标签: java

解决方案


while您的循环逻辑已关闭。试试这个版本:

while ((line = reader.readLine()) != null && !"MEETING_ROOMS".equals(line)) {
    // process line
}

循环中的条件while首先尝试读取一行。如果不是,null那么它会应用额外的检查以确保该行不是MEETING_ROOMS.

你也有一个不平衡的括号问题,但在我的版本中消失了。


推荐阅读