ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

【NIO】3.1 ByteBuffer的原理

【NIO】3.1 ByteBuffer的原理 ByteBuffer的原理1. ByteBuffer的原理1.1 ByteBuffer的重要参数其实是来自父类Buffer1.2 图示说明2. 补充说明1. ByteBuffer的原理1.1 ByteBuffer的重要参数其实是来自父类Bufferprivate int mark -1; // 标记位置private int position 0; // 当前位置private int limit; // 限制位置private int capacity; // 容量1.2 图示说明buffer底层维护一个数组使用allocate(10)相当于分配到长度为10的数组此时buffer是写入模式只能写数据不能从中读数据。每次channel从文件中读取一个字节并且存入buffer中position就向后移动一位使用flip()方法后表示调整buffer为读模式此时position和limit的位置会移动读完4个字节后调用clear()方法后position和limit会恢复到初始的位置此时buffer被调整为写模式。只不过buffer中的数据并没有清除只是写数据时可以覆盖写。2. 补充说明如果数据没有读完就想切换到写模式可以调用compact()方法比如只读取了两个数据调用compact()几个指针对应变化此时未读的数据会移动到前面。
返回列表