В то время как ByteBuffer.put(ByteBuffer)
способ есть, ByteBuffer.get(ByteBuffer)
, похоже, отсутствует? Как я могу достичь чтения меньше ByteBuffer
от большего ByteBuffer
?Как я могу прочитать меньший ByteBuffer из более крупного ByteBuffer?
ответ
Там существует ByteBuffer#put
метод:
общественного ByteBuffer поставил (ByteBuffer ЦСИ): Этот метод передает байты, оставшиеся в данном буфере источника в этот буфер
You что-то вроде
общественного ByteBuffer получить (ByteBuffer ДСТ): Этот метод передает байты, оставшиеся в этом буфере в данном целевого буфер
Но считает, что операции get
и put
несколько симметричны.
ByteBuffer src = ...
ByteBuffer dst = ...
//src.get(dst); // Does not exist
dst.put(src); // Use this instead
Вы явно говорили о меньше и больше буферов. Поэтому я предполагаю, что буфер dst
меньше, чем буфер src
. В этом случае можно просто установить ограничение исходного буфера соответственно:
ByteBuffer src = ...
ByteBuffer dst = ...
int oldLimit = src.limit();
src.limit(src.position()+dst.remaining());
dst.put(src);
src.limit(oldLimit);
Альтернативные препараты возможны (например, с использованием ByteBuffer#slice()
исходного буфера). Но в любом случае вы делаете не должны скопировать содержимое буфера в новый массив байтов, чтобы перенести его в другой буфер!
Рассмотрите возможность чтения API page for ByteBuffer.
ByteBuffer get(byte[])
и
ByteBuffer get(byte[] dst, int offset, int length)
Если я правильно понимаю, вам просто нужно заново обернуть byte[]
в новом ByteBuffer
.
ByteByffer buffer = ...;
byte[] sub = new byte[someSize];
buffer.get(sub [, ..]); // use appropriate get(..) method
buffer = ByteBuffer.wrap(sub);
- 1. ByteBuffer Performance
- 2. ByteBuffer кажется из Bounds
- 3. Создать DataBufferUShort из ByteBuffer
- 4. как напечатать строку из ByteBuffer
- 5. Возможно ли создать ByteBuffer из списка <ByteBuffer>?
- 6. Growing ByteBuffer
- 7. ByteBuffer views
- 8. Java ByteBuffer для Zipfile
- 9. Как правильно использовать ByteBuffer?
- 10. Получить индекс от bytebuffer
- 11. Как сериализовать ByteBuffer
- 12. Как работает обрезка bytebuffer?
- 13. Как читать данные ByteBuffer
- 14. Как я могу генерировать несколько VBO с ByteBuffer
- 15. Понимание java ByteBuffer
- 16. ByteBuffer выделить прямой пример
- 17. Java ByteBuffer в строку
- 18. Получить прямое положение среза ByteBuffer относительно исходного ByteBuffer
- 19. Получить Bytebuffer из браузера JavaFX
- 20. Конвертировать CharBuffer в ByteBuffer
- 21. Как мне построить меньший std :: массив как кусок более крупного?
- 22. LibGDX Texture to ByteBuffer
- 23. ByteBuffer vs BufferInputStream
- 24. Манипуляция ByteBuffer от JNI
- 25. ЮНА ByteBuffer statvfs
- 26. От ByteBuffer до объекта
- 27. ByteBuffer вызывает исключение underflow
- 28. Как я могу декодировать данные OGG vorbis от ByteBuffer?
- 29. Java InputStream to ByteBuffer
- 30. Parse ByteBuffer ищет пробелы
Какие байты из буфера вы хотите прочитать? Что значит читать 'ByteBuffer' из' ByteBuffer'? –
Если бы я должен был передать байт [], стандартный массив байтов заданного размера, ByteBuffer.get (byte), массив будет заполнен. Я хочу подражать этой функции с ByteBuffers. –