Netty io.netty.buffer.ByteBuf.array() 抛出异常-直接缓冲

Netty io.netty.buffer.ByteBuf.array() throws exception - direct buffer

我想将 io.netty.buffer.ByteBuf 打印为字符串。但是 io.netty.buffer.ByteBuf.array() 抛出异常如下。

java.lang.UnsupportedOperationException:直接缓冲 在 io.netty.buffer.PooledUnsafeDirectByteBuf.array(PooledUnsafeDirectByteBuf.java:343)

谁能帮我从字节 io.netty.buffer.ByteBuf 中获取字节 []。

谢谢。

好的,我找到了打印值的方法。如果有人感兴趣,

byte[] bytes = new byte[buf.readableBytes()];
buf.duplicate().readBytes(bytes);
System.out.println(new String(bytes));

要将 ByteBuf 的内容打印为字符串,可以使用 buf.toString(java.nio.charset.Charset).