说明
可以使用io.netty.buffer.Unpooled的wrappedBuffer(byte[] array)获取包裹数组的big-endian的ByteBuf。修改数组、包裹ByteBuf的内容互相影响。
示例
用wrappedBuffer(byte[] array)获取包裹数组的ByteBuf
package com.thb;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
public class Test {
public static void main(String[] args) {
// 创建一个ByteBuf
//ByteBuf buf = Unpooled.buffer();
byte[] b = new byte[] {104};
// 用数组创建一个包裹的ByteBuf
ByteBuf buf = Unpooled.wrappedBuffer(b);
// 查看buf第一个字节的内容
System.out.println("buf.getByte(0): " + buf.getByte(0));
// 更改包裹的ByteBuf值
buf.setByte(0, 22);
// 在包裹的ByteBuf上的修改,在数组上体现出来
System.out.println("after wrapped ByteBuf changed, b[0]: " + b[0]);
b[0] = 33;
// 在数组上的修改在包裹的ByteBuf体现出来
System.out.println("after change byte array, buf.getByte(0): " + buf.getByte(0));
}
}
运行输出:
buf.getByte(0): 104
after wrapped ByteBuf changed, b[0]: 22
after change byte array, buf.getByte(0): 33