有没有一种方法可以在不先将缓冲区内容读取到中间的byte[]
或char[]
中的情况下从ByteBuffer
构造一个String
?
类似于接受byte[]
参数的字符串构造函数的API看起来是理想的:
public String(ByteBuffer buffer, int offset, int length, Charset charset)
...但是这样的东西并不存在。
我找到了如何将ByteBuffer转换为整数和字符串?,但它使用了一个辅助数组。
到目前为止我找到的最好的方法是将字节缓冲区作为CharBuffer
进行投影,并调用toString()
。但这不允许使用类似于UTF-8
的压缩字符串。
array
方法获取ByteBuffer
的后备字节数组。除了不想依赖内部实现细节之外,您的最终目标是什么? - Perception