从netty ByteBuf获取字符串

时间:2016-07-02 22:13:59

标签: java netty bytebuffer

如何从网络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 个答案:

答案 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)

Take a look at this

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