「ABCDEabcde.....XYZxyz」のような文字のシーケンスを含む大きなファイルがあります。ここで、そのサブシーケンスをいくつか抽出したいと思います。たとえば、10番目の文字から50番目の文字、15番目の文字から55番目の文字(すべてのサブシーケンスの長さは同じで、開始位置は常に増加しています)と言います。誰かがJavaでそれを高速に行う方法を教えてもらえますか?
2 に答える
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() );
于 2012-04-27T18:37:07.963 に答える
0
このようなものを試してみませんか:
BufferedReader br = new BufferedReader(new FileReader(<FileName>), int size);
subStrings
そこにバッファサイズを入力し、そのチャンクだけで自分のバッファサイズをチェックし続けます。何も見つからない場合は、それを破棄して次のチャンクに進みます。
于 2012-04-27T19:04:47.787 に答える