假设我的文件有 2GB,我想要其中的一些特定数据。索引到另一个索引(考虑两个索引之间的特定数据 300MB),更好的方法是什么?我尝试了 substring 但抛出内存不足异常。请建议更好的方法来做到这一点。
最佳答案
一般来说,假设磁盘上有 2GB 文件,并且您想将其中的一部分读入内存,则绝对不必先将整个 2GB 读入内存。
最直接的解决方案是使用 Random Access File
重点是它提供了一个指针的抽象,可以在大文件上来回移动,一旦设置好,您就可以从指针指向的位置读取字节。
RandomAccessFile file = new RandomAccessFile(path, "r");
file.seek(position);
byte[] bytes = new byte[size];
file.read(bytes);
file.close();
关于java - 对大文本进行子串的更好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54229491/