将 ByteBuffer 的一部分转换为字符串

Posted

技术标签:

【中文标题】将 ByteBuffer 的一部分转换为字符串【英文标题】:Converting part of a ByteBuffer to a String 【发布时间】:2010-06-07 17:59:53 【问题描述】:

我有一个 ByteBuffer,其中包含由 String.getBytes(charsetName) 派生的字节,其中“包含”意味着该字符串包含 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】:
String s = Charset.forName(charsetName).decode(bbuf).toString();

【讨论】:

哇!太棒了——它“闻起来”好像应该做点什么

以上是关于将 ByteBuffer 的一部分转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何从 ByteBuffer 转换为 Integer 和 String?

如何将 ByteBuffer 转换为 pdf

ByteBuffer 和十进制和十六进制之间的转换

Java:将 String 与 ByteBuffer 相互转换以及相关问题

在 Java 中将 ByteBuffer 转换为字符串

如何在 Kotlin 中将数据类转换为 ByteBuffer?