web-dev-qa-db-ja.com

nettyByteBufから文字列を取得する

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);
}
8
aries

提供されているメソッドを使用します ByteBuf.toString(Charset)

10
mileippert

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()を使用してStringobejctを取得してください

3
xinnjie

これを見てください

そこから、new String(byte[])またはいくつかのBase64ソリューションを使用できます(私が想定しているバイナリデータであるため)

0
cilki