繁体   English   中英

如何使用randomAccessFile“窥视”?

[英]How to “peek” with randomAccessFile?

我有这段代码来检查是否在某个时间发送了日志行。 问题是,即使日志行不是我想要的时间,文件指针也会超过(说“以后”然后搜索时间)。 我只想将文件指针最终添加到answer List<String>才增加文件指针

@Override
public List<String> getForMinuteTimeFrame(LocalTime currentTime) {
    List<String> lines = new ArrayList<>();
    String line = null;
    while ((line = randomAccessFile.readLine()) != null) {
        if (fetchTime(line).isEqual(currentTime)) {
            lines.add(line);
        }
    }
    return lines;
}

我该如何优雅地做到这一点? 输入文件很大(〜250 MB),所以我逐行阅读。

您应该能够使用“ randomAccessFile.getFilePointer()”获取当前文件点,并在每次成功读取您关心的行时将其存储。 然后,在返回之前,可以使用randomAccessFile.seek()将当前文件的位置设置回该位置,并传递从getFilePointer()获得的值。 这会将读取点恢复到读取最后一行之前的状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM