MappedByteBuffer の最大サイズが Integer.MAX_VALUE であることを確認したいだけで、サイズ 0x80000000 のバッファーを作成する方法はありません。この範囲のインデックスは「int」型の値で表現できますが、「java.nio」の仕様ではこのサイズは許されませんよね?ありがとう!
質問する
1463 次
1 に答える
1
FileChannel.map() のドキュメントには、マップされた領域のサイズが Integer.MAX_VALUE を超えることはできないと明示的に記載されています。このメソッドは (おそらく) 他のファイル API 呼び出しとの一貫性のため、または将来の拡張のために長いパラメーターを取りますが、実際には ByteBuffer インデックスは一般に int として定義されます。
ただし、その値を超えて始まる領域をマップできるはずなので、原則として、いくつかのマップされた部分を持つことで、より大きなファイルをマップできます。
于 2012-12-07T22:48:37.853 に答える