Преобразование части байтового буфера в строку - PullRequest
1 голос
/ 07 июня 2010

У меня есть ByteBuffer, содержащий байты, которые были получены с помощью String.getBytes(charsetName), где «содержащий» означает, что строка содержит всю последовательность байтов между position() и limit() ByteBuffer.

Какой лучший способ вернуть мне строку? (при условии, что я знаю кодировку кодировки) Есть ли что-нибудь лучше, чем следующее (что кажется немного неуклюжим)

byte[] ba = new byte[bbuf.remaining()];
bbuf.get(ba);
try {
    String s = new String(ba, charsetName);
}
catch (UnsupportedEncodingException e) {
    /* take appropriate action */
}

1 Ответ

5 голосов
/ 07 июня 2010
String s = Charset.forName(charsetName).decode(bbuf).toString();
...