1

MappedByteBuffer の最大サイズが Integer.MAX_VALUE であることを確認したいだけで、サイズ 0x80000000 のバッファーを作成する方法はありません。この範囲のインデックスは「int」型の値で表現できますが、「java.nio」の仕様ではこのサイズは許されませんよね?ありがとう!

4

1 に答える 1

1

FileChannel.map() のドキュメントには、マップされた領域のサイズが Integer.MAX_VALUE を超えることはできないと明示的に記載されています。このメソッドは (おそらく) 他のファイル API 呼び出しとの一貫性のため、または将来の拡張のために長いパラメーターを取りますが、実際には ByteBuffer インデックスは一般に int として定義されます。

ただし、その値を超えて始まる領域をマップできるはずなので、原則として、いくつかのマップされた部分を持つことで、より大きなファイルをマップできます。

于 2012-12-07T22:48:37.853 に答える