2016-02-16 2 views
-1

Я хочу знать, можно ли обновить байтовый буфер.Как обновить байтовый буфер

Скажем, у меня ниже:

ByteBuffer buffer = ByteBuffer.allocate(56); 
buffer.putInt(12); 
buffer.putLong(34);  
buffer.put(byte('A'));  

Предполагая, что я хочу изменить буфер, чтобы сказать, что первый ИНТ я вставил должен быть 50, как я могу это сделать.

Я хочу что-то вроде:

public void updateByteBuffer(ByteBuffer, int position, int newValue){ 
    // logic to change buffer.putInt(12); to buffer.putInt(50); 
    // So after this function, my ByteBuffer should contain(hex) 50,34 and 'A'; 
} 
+0

Кроме того, нет необходимости писать собственный метод для этого; ['ByteBuffer' уже имеет встроенный файл (http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html#putInt-int-int-). Обратите внимание, что индекс находится в _bytes_. – fge

+0

@fge buffer.put (byte ('A')); является законным на Java .. вы можете проверить !! –

ответ

2

Вы всегда можете просто написать buffer.putInt(0, 50). Это перегрузка, которая принимает индекс, как смещение байта, чтобы указать, где поставить аргумент.

Смежные вопросы