Netty io.netty.buffer.ByteBuf.array()引发异常-直接缓冲区

时间:2018-10-05 05:19:20

标签: java tcp jboss netty

我想将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 []。

谢谢。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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