Java 读取文件,直到行具有特定值
我有一个具有以下模式的csv文件:Java 读取文件,直到行具有特定值,java,Java,我有一个具有以下模式的csv文件: HEADER1 entry1 entry2 HEADER2 entry3 entry4 ... 标题将不同对象的条目分开。我创建了一个BufferedReader和两个while循环,我想迭代第一个while循环,直到下一行的值等于HEADER2的值(然后我想退出这个迭代并开始下一个迭代并创建不同的对象)。我的问题是写这种情况: while ( !"MEETING_ROOMS".equals(line = reader.readLine())) || ((l
HEADER1
entry1
entry2
HEADER2
entry3
entry4
...
标题将不同对象的条目分开。我创建了一个BufferedReader和两个while循环,我想迭代第一个while循环,直到下一行的值等于HEADER2的值(然后我想退出这个迭代并开始下一个迭代并创建不同的对象)。我的问题是写这种情况:
while ( !"MEETING_ROOMS".equals(line = reader.readLine())) || ((line = reader.readLine()) != null) {
这将返回一个“表达式的非法开始”错误。当循环关闭时,
的逻辑将被禁用。请尝试以下版本:
while ((line = reader.readLine()) != null && !"MEETING_ROOMS".equals(line)) {
// process line
}
while
循环中的条件首先尝试读取一行。如果该行不为null
,则应用附加检查以确保该行不是会议室
您还遇到了括号不平衡的问题,但在我的版本中,这个问题消失了。while
循环的逻辑已关闭。请尝试以下版本:
while ((line = reader.readLine()) != null && !"MEETING_ROOMS".equals(line)) {
// process line
}
while
循环中的条件首先尝试读取一行。如果该行不为null
,则应用附加检查以确保该行不是会议室
您还遇到了括号不平衡的问题,但在我的版本中,这一问题消失了。该代码中的括号不正确,
.equals(line=reader.readLine())
应该是。equals(line=reader.readLine())
while的完整条件必须封装在括号中。与while(条件1)| |(条件2)不同,while(条件1 | |条件2)中的括号不正确,.equals(line=reader.readLine())
应该是。equals(line=reader.readLine())
while的完整条件必须封装在括号中。而不是while(条件1)| |(条件2)它应该是while(条件1 | |条件2)