java – 从ByteBuffer读取字符串而不进行双缓冲

有没有办法从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.

上一篇:java NIO 深入学习


下一篇:NIO与网络编程系统化学习