【发布时间】:2015-08-27 04:46:02
【问题描述】:
大家好,我目前正在使用BufferedReader 来读取文件。我有类似的东西:
br.readLine() != null
对于每个调用循环。
如果我想跳过一行,现在该怎么办。在这里,我阅读了其他人发布的几个类似问题,其中大多数建议使用readLine()。
我知道调用readLine() 一次会导致指针指向下一行。但这不是首选,因为我正在考虑这里的阅读性能。尽管您似乎跳过了一行,但系统实际上已经阅读了它,因此它不是时间效率。我想要的是将指针移动到下一行,而不是读取它。
有什么好主意吗?
【问题讨论】:
-
另外,对于不使用 BufferedReader 跳过的任何好的建议,我们将不胜感激!和
-
你不能只用
BufferedReader“跳过”一行,它需要读取数据以找到该行的结束位置。 -
为什么需要跳过一行?除了
BufferedReader,您可能还有其他选择 -
@Kayaman:这个问题是合理的。假设您在下一个
'\n'字符之前还有 10 兆字节。readLine()方法会将它们全部读入内存,然后丢弃。 -
实际上我正在以柱状形式读取多个 csv 文件。问题是我只读取一列,当且仅当该列中的值满足某些条件时,我才需要检索整个记录。否则,我触发指针(在其他文件中)跳过。
标签: java file file-io bufferedreader