JAVA NIO Bytebuffer.allocateDirect() size limit over the int

风格不统一 提交于 2019-12-06 08:31:51

You can't make a single buffer that big. Period. You can make several smaller ones and select amongst them as you need to in your own code. That's all you can do.

e.g.:

ByteBuffer[] myBuffers = new ByteBuffer[howMany];
for (int x = 0; x < howMany; x++) {
    myBuffers[x] = ByteBuffer.allocateDirect(prettyBig);
}

and then

byte getByte(long index) {
    int bufx = index / howMany;
    int bx = index % howMany;
    return myBuffers[bufx].get(bx); 
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!