これらは実際には、メモリマップされたファイルの操作方法に関する3つの質問です。私はうまくいったけど、権威ある答えが足りない。 ByteBuffer
が好きな私の私が取得サイズ変更、フラッシング、閉じるByteBuffer
は次のとおりです。次
サイズ変更raf = new RandomAccessFile(file, isReadonly ? "r" : "rw");
channel = raf.getChannel();
buffer = channel.map(mode, 0, channel.size());
は、raf.getChannel()
を呼び出さずに
raf.setLength(newLength);
channel = raf.getChannel();
を動作するようだが、はそれが本当に正しいですか?
Javadocによると、force
を呼び出すと(私はローカルドライブを使用しています)、それをフラッシュする必要があります。私はちょうど、それが失敗した場合に何が起こるかをIOException
とと宣言しているのだろうか?
私は何を閉じる必要がありますか? RandomAccessFile
、FileChannel
、またはその両方前にflush
またはMappedByteBuffer.force
と呼ぶ必要がありますか?リサイズのために