从Netty ByteBuf获取字符串

10
我该如何从Netty的ByteBuf中获取字符串?目前我只能逐个字符地获取。是否有一种直接获取字符串对象的方法?
答案:

我该如何从Netty的ByteBuf中获取字符串?目前我只能逐个字符地获取。是否有一种直接获取字符串对象的方法?

// message is of type ByteBuf
for (int i = 0; i < message.capacity(); i++) {
    byte b = message.payload().getByte(i);
    System.out.print((char) b);
}
3个回答

14

4

使用 ByteBuf.readCharSequence()

以下是示例:

// here we use utf-8 decoding, you can choose the charset you want
String s = ByteBuf.readCharSequence(length, Charset.forName("utf-8")).toString()

请注意,ByteBuf.readCharSequence() 返回 java.lang.CharSequence 类型的数据,使用 toString() 方法可以获取 String 类型的对象。

0

看一下这个

从那里你可以使用new String(byte[])或一些Base64解决方案(因为它是二进制数据,我假设)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接