0

Java NIO MappedByteBuffer に関して言えば、異なるファイルの一部をバッファにマップすることは可能ですか? このようなもの:

buffer = infilechannel1.map(FileChannel.MapMode.READ_WRITE, infilechannel1.position(), infilechannel1.size());

次に、次のようなもの:

buffer = infilechannel2.map(FileChanne2.MapMode.READ_WRITE, infilechannel2.position(), infilechannel2.size());

現在、最初の「プット」で、バッファの制限がすでに特定の値に設定されています。バッファへの 2 番目の「プット」により、バッファ オーバーフロー例外が発生します。バッファーに十分なスペースを割り当てました。

このバッファを 2 番目のファイルの値で更新 (追加) するにはどうすればよいでしょうか?

編集:私の最初の質問は間違っていました。より分かりやすいように編集します。

私はいくつかの大きなファイル(たとえば4つ、現在は同じサイズ)を持っており、ファイルは個別でもメモリに収まりません。4 つのファイルに対して操作を実行し、1 つの出力ファイルを作成する必要があります。私のメモリはファイルのサイズに比べてかなり小さいので、一度に 4 ブロックしか処理できません。つまり、一度に各ファイルから 1 ブロックしか処理できません。ファイル内の特定のブロックにマップする複数の MemoryByteBuffers を作成してから、処理のために ByteBuffer に書き込むか、各ブロックを ByteBuffer に直接書き込むことができます。

このシナリオで MemoryByteBuffer を使用する利点/意味はありますか?

4

0 に答える 0