如何创建只读FloatBuffer的副本?

时间:2015-06-29 22:40:23

标签: buffer floatbuffer

我正在尝试编辑缓冲区,但输入的副本(原始版本)是只读的。结果具有相同的值,但行为与原始值不同;我不确定有什么不同。为什么会出现这种情况?

private FloatBuffer cloneBuffer(FloatBuffer original) {
    final ByteBuffer byteClone = (original.isDirect()) ?
            //multiplying by 4 and adding 3 so the capacity is the same         
            //when converted to FloatBuffer
            ByteBuffer.allocateDirect(original.capacity() *4 + 3) :
            ByteBuffer.allocate(original.capacity() * 4 + 3);

    final FloatBuffer clone = byteClone.asFloatBuffer();
    final FloatBuffer readOnlyCopy = original.asReadOnlyBuffer();

    readOnlyCopy.rewind();
    clone.put(readOnlyCopy);
    clone.position(original.position());
    clone.limit(original.limit());



    return clone;
}

1 个答案:

答案 0 :(得分:0)

想出来 - 我只需要将订单设置为LITTLE_ENDIAN