如何从网络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);
}
答案 0 :(得分:9)
使用提供的方法ByteBuf.toString(Charset) 。
答案 1 :(得分:3)
使用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
obejct
答案 2 :(得分:0)
从那里你可以使用new String(byte[])
或一些Base64解决方案(因为它是我假设的二进制数据)