将ByteBuffer的一部分转换为String

时间:2010-06-07 17:59:54

标签: java string nio bytebuffer

我有一个包含由String.getBytes(charsetName)派生的字节的ByteBuffer,其中“包含”表示该字符串包含ByteBuffer的position()limit()之间的整个字节序列。

让我回来的最佳方式是什么? (假设我知道编码字符集)有没有比以下更好的东西(看起来有点笨重)

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

1 个答案:

答案 0 :(得分:5)

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