Как создать копию только для чтения FloatBuffer?

90
13

Я пытаюсь отредактировать буфер, но введенная копия (оригинал) доступна только для чтения. Результат имеет те же значения, но действует иначе, чем оригинал; Я не уверен, что другое. Почему это может быть так?

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;
}

спросил(а) 2015-06-30T01:40:00+03:00 4 года, 5 месяцев назад
1
Решение
70

Выяснил это - мне просто нужно было установить заказ на LITTLE_ENDIAN

ответил(а) 2015-06-30T01:58:00+03:00 4 года, 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема