我正在寻找支持基于行搜索的文本阅读器。我希望它也支持编码。例如,它可能有一个看起来像
的方法 seekLines(n, seekType) - goes to a particular line based on the seek type
搜索类型与二进制文件的处理方式类似:从文件的开头,从当前位置,可能是从结尾。
例如,假设我有以下几行:
1 Lorem ipsum dolor sit amet, consectetur adipisicing elit,
2 sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
3 Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
我现在在第2行。如果我说
seek(1, CURRENT); // arbitrary constant
然后它将转到第3行。如果我说
seek(1, BEGIN);
它将转到第1行。
是否有可用的库提供此功能?
答案 0 :(得分:1)
您需要将文本行的索引转到随机行。最简单的解决方案是将所有行读入List<String>
并随机查看。
如果无法将所有文本都放入内存中,则可以索引所有行。这可以懒惰地完成到内存映射文件,因此它不必使用重要的堆。你需要阅读所有你想要的点,但你只需要这样做一次。