NIO——buffer

(1)作用

          NIO中的Buffer用于和NIO通道进行交互:数据从通道读入缓冲区,从缓冲区写入到通道中的。

          Buffer的本质是一块可读可写的内存,NIO将这块内存包装成Buffer对象,并提供了一组方法,用来方便的访问该内存


(2)position、limit

          1)写模式

                可以理解为栈,position为栈顶指针,limit为指针的最大位置

          2)读模式

                可以理解为队列,position为队首指针,limit为队尾指针

         capacity是整个内存的大小,不用和前两个一起比较

         


          3)测试

	@Test
	public void test() {
		System.out.println("初始写状态");
		ByteBuffer buffer = ByteBuffer.allocate(8);
		System.out.println("position: "+buffer.position());
		System.out.println("limit: "+buffer.limit());

		System.out.println("-----------------");
		buffer.put((byte) 5);
		byte[] bytes = {6,7,8};
		buffer.put(bytes);
		System.out.println("放入4个数据后状态");
		System.out.println("position: "+buffer.position());
		System.out.println("limit: "+buffer.limit());
		
		System.out.println("-----------------");
		buffer.flip();
		System.out.println("切换为读状态");
		System.out.println("position: "+buffer.position());
		System.out.println("limit: "+buffer.limit());
		
		System.out.println("-----------------");
		byte res = buffer.get();
		System.out.println(res);
		System.out.println("读取一个数据后状态");
		System.out.println("position: "+buffer.position());
		System.out.println("limit: "+buffer.limit());
	}
              结果为:

初始写状态
position: 0
limit: 8
-----------------
放入4个数据后状态
position: 4
limit: 8
-----------------
切换为读状态
position: 0
limit: 4
-----------------
5
读取一个数据后状态
position: 1
limit: 4















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值