我有一个大文件,其中包含诸如“ABCDEabcde .....XYZxyz”之类的字符序列。现在,我想从中提取一些子序列字符串。例如,从第 10 个字符到第 50 个字符串,从第 15 个字符到第 55 个字符串(所有子序列字符串具有相同的长度,即 40 个字符并且起始位置(例如 10,15)总是增加)。子序列位置在一次运行中从第 10 到第 50 个字符、从第 15 到 55 个字符、在另一运行中从第 2 到第 42 个字符和从第 100 到第 140 个字符是动态的。现在,我必须提取数百万个这样的动态子字符串。我已经尝试了一些在这里向我建议的方法。但是,它们对我来说很慢。
我努力了:
1)使用BufferedReader进行简单的缓冲读取,等待需要的位置块。
2)使用随机访问文件和搜索方法来做到这一点。
由于我的文件大约 700 mb(近 2 亿个字符)并且我必须提取数百万个这样的动态子字符串,因此它们对我来说需要将近一分钟(第一个需要更多时间)。任何人都可以通过提供任何其他可能比它更快的想法来帮助我吗?我也可以使用任何 Java 库。