1

次の条件を満たすメソッド「isFileMapped」をプログラムで実装する方法はありますか。

 ByteBuffer aa = ByteBuffer.allocateDirect(12);
 assertFalse(isFileMapped(aa));
 FileChannel fc = new RandomAccessFile(File.createTempFile("mmap", "test"), "rw").getChannel();
 ByteBuffer bb = fc.map(FileChannel.MapMode.READ_WRITE, 0, 10);
 assertTrue(isFileMapped(bb));
 fc.close();
 // and of course:
 assertFalse(isFileMapped(ByteBuffer.allocate(12)));

どちらのインスタンスもMappedByteBufferタイプであり、直接です。

4

1 に答える 1

1

を使用しMappedByteBuffer.isLoaded()ます。実際にマップされたバッファの場合は true または false を返し、 によって返されたバッファの場合ByteBuffer.allocateDirect()は UnsupportedOperationException をスローします。

しかし、I/O 操作に参加した後も UnsupportedOperationException をスローするかどうかはわかりません。

于 2012-06-17T17:26:06.210 に答える