java - 读取文件直到行具有特定值
问题描述
我有一个具有以下架构的 csv 文件:
HEADER1
entry1
entry2
HEADER2
entry3
entry4
...
标头划分不同对象的条目。我创建了一个 BufferedReader 和两个 while 循环,我想遍历第一个 while 循环,直到下一行的值等于 HEADER2 的值(然后我想退出这个迭代并开始下一个迭代并创建不同的对象)。我的问题是写这个条件:
while ( !"MEETING_ROOMS".equals(line = reader.readLine())) || ((line = reader.readLine()) != null) {
这会返回一个“非法的表达式开始”错误。
解决方案
while
您的循环逻辑已关闭。试试这个版本:
while ((line = reader.readLine()) != null && !"MEETING_ROOMS".equals(line)) {
// process line
}
循环中的条件while
首先尝试读取一行。如果不是,null
那么它会应用额外的检查以确保该行不是MEETING_ROOMS
.
你也有一个不平衡的括号问题,但在我的版本中消失了。
推荐阅读
- python - 带有 debugpy 的 vscode:缺少像 pdb 这样的递归模式?
- python - 是否可以从 Azure Python SDK 获取 ASC 位置?
- swift - SwiftUI:如何从轮子选择器导航到视图?
- python - Pygame 无法在 Pycharm 上运行 - “无法识别的选择器发送到实例”
- c++ - 如何从 Win32 中的挂钩 DLL 记录/输出消息?
- java - 如何生成从 24 小时前到当前系统时间的任何随机时间?
- python - 即使用户登录,request.user.is_authenticated 也会返回 false。经过身份验证的用户不起作用
- reactjs - 需要帮助从状态中的自动完成(多个)中捕获用户选择(反应)
- c# - 未使用 Condition 恢复包引用
- laravel - 在 Laravel 8 中将图像保存为数据库中的 tmp