我有一个大文件,其中包含“ABCDEabcde ..... XYZxyz”等字符序列。现在,我想提取它的一些子序列。例如,从第10个字符到第50个字符,从第15个字符到第55个字符(所有子序列具有相同的长度并且起始位置总是增加)。任何人都可以帮助我在Java中快速完成这项工作吗?
答案 0 :(得分:0)
您可以使用MappedByteBuffer和访问文件作为字节缓冲区
http://docs.oracle.com/javase/7/docs/api/java/nio/MappedByteBuffer.html
RandomAccessFile raf = new RandomAccessFile(....);
FileChannel fc = raf.getChannel();
MappedByteBuffer mmap = fc.map(READ_ONLY, 0, fc.size() );
答案 1 :(得分:0)
为什么不尝试这样的事情:
BufferedReader br = new BufferedReader(new FileReader(<FileName>), int size);
只需在那里输入缓冲区大小,并继续单独检查该块中的subStrings
。如果找不到任何内容,请将其丢弃并转到下一个块。