【问题标题】:Java read file line by line to a specific seek positionJava逐行读取文件到特定的查找位置
【发布时间】:2019-03-10 05:30:08
【问题描述】:

我想逐行读取文件到指定的查找位置。从某个搜索位置开始阅读并继续阅读直到结束很容易。

RandomAccessFile f = new RandomAccessFile("file.txt","r")
f.seek(seek)

这会将文件读取位置设置为给定的查找并开始读取直到该位置。 如何从第一行逐行读取并停止向前读取或寻找位置?

【问题讨论】:

  • 你知道seek(long pos),你怎么可能不知道getFilePointer()?继续阅读,直到您到达所需的位置!
  • “前进或寻找位置”是指在读取跨越该位置的行之前?您是否期望 Java 具有千里眼并提前知道它尚未阅读的内容?如果您想知道如何知道您何时阅读过该职位,那么@Andreas 似乎有您的答案。
  • @Andreas 如果我继续阅读一个新行,它超过了搜索值怎么办?
  • @ShashwatKumar 由 决定如果特定的搜索位置在一行的中间意味着什么。

标签: java file-read lseek


【解决方案1】:

要获取当前搜索位置,请使用 getFilePointer()。

读取穿过搜索位置的最后一行,然后将其丢弃。你可以在读完每一行之前记住seek位置,然后如果你想在扔掉最后一行后回到seek位置之前,你可以这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    • 1970-01-01
    • 2020-04-14
    • 2017-06-05
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多