Netty:用Unpooled获取包裹的ByteBuf

说明

可以使用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

你可能感兴趣的:(java,开发语言,Netty)