}
/**
-
打印出ByteBuf的信息
-
@param buffer
*/
private static void printBuffer(ByteBuf buffer) {
System.out.println(“readerIndex:” + buffer.readerIndex());
System.out.println(“writerIndex:” + buffer.writerIndex());
System.out.println(“capacity:” + buffer.capacity());
}
}
复制代码
输出结果:
------------初始时缓冲区------------
readerIndex:0
writerIndex:0
capacity:10
------------添加数据到缓冲区------------
readerIndex:0
writerIndex:4
capacity:10
------------读取数据------------
108
111
118
101
readerIndex:4
writerIndex:4
capacity:10
------------执行discardReadBytes------------
readerIndex:0
writerIndex:0
capacity:10
------------执行clear清空缓冲区------------
readerIndex:0
writerIndex:0
capacity:10
Process finished with exit code 0
复制代码
对比ByteBuffer
和ByteBuf
两个示例可以看出,Netty 提供了更加方便地创建ByteBuf
的工具(unpooled
),同时,也不必再执行flip()
方法来切换读写模式。对比而言,ByteBuf
更加易于使用。
ByteBuf