「ABCDEabcde.....XYZxyz」のような文字のシーケンスを含む大きなファイルがあります。ここで、そこからサブシーケンス文字列を抽出します。たとえば、10番目の文字列から50番目の文字列、15番目の文字から55番目の文字列(すべてのサブシーケンス文字列は同じ長さ、つまり40文字で、開始位置(10,15など)は常に増加しています)と言います。サブシーケンス位置は、1回の実行で10〜50文字、15〜55文字、別の実行で2〜42文字、100〜140文字の動的平均です。今、私はそのような動的なサブストリングを何百万も抽出する必要があります。私はここで私に提案されたようにいくつかの方法を試しました。しかし、私にとってはかなり遅いです。
私が試してみました:
1)BufferedReaderを使用して単純なバッファー読み取りを行い、必要な位置チャンクを待ちます。
2)ランダムアクセスファイルとSeekメソッドを使用してこれを行います。
私のファイルは約700mb(約2億文字)であり、そのような動的なサブ文字列を何百万も抽出する必要があるため、1分近くかかります(最初の1つはそれ以上かかります)。誰かがそれよりもおそらく速い他のアイデアを提供することによって私を助けることができますか?Javaライブラリを使用することも私にとっては問題ありません。