有没有办法从ByteBuffer构造一个String而不先将内容从缓冲区读取到中间字节[]或char []?
类似于string constructor that takes a byte[]的API让我觉得理想:
public String(ByteBuffer buffer, int offset, int length, Charset charset)
……但不存在这样的事情.
我找到了How to convert from ByteBuffer to Integer and String?,但它使用了一个辅助阵列.
到目前为止,我发现的下一个最好的事情是将字节缓冲区投影为CharBuffer并调用toString()
.但这不允许使用UTF-8之类的东西来压缩字符串.
解决方法:
请问CharsetDecoder.decode
并在返回的CharBuffer
上拨打toString
.