读取文件直到行具有特定值

时间:2018-11-30 10:33:04

标签: java

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

HEADER1
entry1
entry2
HEADER2
entry3
entry4
...

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

您还遇到了一个不平衡的括号问题,但是在我的版本中该问题消失了。

相关问题