gpt4 book ai didi

Java:扫描文件,但从特定行索引开始?

转载 作者:行者123 更新时间:2023-11-30 07:05:46 25 4
gpt4 key购买 nike

我需要扫描以换行符分隔的文本文件,每个文件可能超过一百万行。由于网络服务器的限制,合理地执行此操作的唯一方法是将进程分解为更小的扫描 block 。

我已经找到的一种方法是使用 Scanner 并跳过行,直到达到所需的行索引...但这有一个不理想的开销对数十万行的文件进行多次扫描访问。

RandomAccessFile.skip()InputReader.skip() 都允许查找,但是是按字节计算的,不能保证每一行都一样字节数。有什么方法可以根据分隔符而不是字节来跳过几行吗?

或者还有其他方法可以解决这个问题吗?

最佳答案

如果要从特定行开始,则必须计算新行字符数。除了某种形式的线性扫描之外,没有办法做到这一点。从文件系统的角度来看,换行符并不“特殊”。

不过,我对 Scanner 的性能体验很差。我认为您最好的选择是使用具有大缓冲区的 BufferedReader

如果您一遍又一遍地使用同一个文件,您应该为行偏移创建一个索引,以便您可以快速查找给定的行。

关于Java:扫描文件,但从特定行索引开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26370017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com