常规使用
package netty;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
public class BufDemo {
public static void main(String[] args) {
ByteBuf buffer = Unpooled.buffer(10);//就是一个byte[10]数组
for (int i = 0; i < 10; i++) {
buffer.writeByte(i);//writerindex 这个索引会变化
}
System.out.println("buffer = " + buffer.capacity());
for (int i = 0; i < buffer.capacity(); i++) {
System.out.println("buffer.getByte(i) = " + buffer.getByte(i));//readindex这个索引不会变化
System.out.println("buffer.readByte() = " + buffer.readByte());//这个会让readindex变化
}
}
}
不像nio中的ByteBuffer需要如果读写切换需要flip翻转。
1: 0-----readindex 是已经读过的 经过debug 应该是小于
2: readindex - ----writerindex 这个是可以读的
3: writeindex ------------capacity 这个是可以写的
本文深入探讨了Netty框架中ByteBuf的使用方法,对比了其与NIO ByteBuffer的区别,详细解析了ByteBuf的写入、读取操作及内部索引机制。
773

被折叠的 条评论
为什么被折叠?



