Есть ли способ построить String
от ByteBuffer
без предварительного считывания содержимого из буфера промежуточному byte[]
или char[]
?Чтение строки из ByteBuffer без двойной буферизации
АНИ похож на string constructor that takes a byte[] меня поражает, как идеал:
public String(ByteBuffer buffer, int offset, int length, Charset charset)
... но нет такого понятия не существует.
Я нашел How to convert from ByteBuffer to Integer and String?, но использует вспомогательный массив.
I следующее лучшее, что я нашел до сих пор, это проецирование байтового буфера как CharBuffer
и вызов toString()
. Но это не позволяет сжимать строки с чем-то вроде UTF-8
.
Поддерживает ли ваш ByteBuffer метод array()? –
Это карта памяти, поэтому я так не думаю. Но это все сложности, которые я хочу использовать для понимания API. –
Я в замешательстве, что вы пытаетесь выполнить. Вы можете получить массив байтовых байтов для 'ByteBuffer', используя свой метод' array'. Помимо того, что вы не хотите полагаться на детали внутренней реализации, какова ваша конечная цель? – Perception