从文件中提取子序列 - Java - 快速方法

时间:2012-04-27 18:25:27

标签: java

我有一个大文件,其中包含“ABCDEabcde ..... XYZxyz”等字符序列。现在,我想提取它的一些子序列。例如,从第10个字符到第50个字符,从第15个字符到第55个字符(所有子序列具有相同的长度并且起始位置总是增加)。任何人都可以帮助我在Java中快速完成这项工作吗?

2 个答案:

答案 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。如果找不到任何内容,请将其丢弃并转到下一个块。