2010-06-07 6 views
1

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

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

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

ответ

5
String s = Charset.forName(charsetName).decode(bbuf).toString(); 
+0

Whee! Отлично - это «пахло», как будто должно быть что-то сделать –

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