Buffer
来源:互联网 发布:海报拼图软件 潘哒 编辑:程序博客网 时间:2024/05/30 04:27
Buffer是java.nio包下的一个抽象方法。提供了对I/O的高速操作。
Buffer主要有两种操作模式,读模式和写模式。
内部通过几个变量,对buffer进行操作。
//变量所表示的意义在不同操作中也不同// Invariants: mark <= position <= limit <= capacityprivate int mark = -1;private int position = 0;private int limit;private int capacity;
mark
标记位
position
在写模式下,表示可以写入的当前位置,最大值可以为capacity-1,初始值为0
在读模式下,标记当前可读的位置
limit
在写模式下,表示当前写入的位置,capacity-limit即为还可写入的数据量,即写模式下position-1
在读模式下,表示当前可读内容,limit-position即为可读的数据量,即写模式下position
capacity
表示当前Buffer容量
对Buffer的操作一般是以下操作
- buffer.read() 读入数据
- buffer.flip() 写模式变为读模式
- buffer.get() 取数据
- buffer.clear()或者buffer.rewind() 准备再次读入数据
buffer.read可以从输入流或者channel中读入
flip()
//写模式变为读模式 public final Buffer flip() { limit = position; //可读的最大限制 position = 0; //position置为0,从头开始读 mark = -1; //重置标记位 return this; }
clear()
public final Buffer clear() { //重置所有标记,为读入数据做好准备 position = 0; limit = capacity; mark = -1; return this; }
rewind()
public final Buffer rewind() { //和clear()类似,但是并没有重置limit 数据还在,可重复读 position = 0; mark = -1; return this; }
阅读全文
0 0
- buffer
- buffer
- Buffer
- Buffer
- Buffer
- Buffer
- Buffer
- Const Buffer,Texture Buffer
- 确认Buffer
- Create Buffer
- Buffer Overflows
- Buffer Cache
- JITTER BUFFER
- log buffer
- buffer & Test
- sweet buffer
- System.Buffer
- Frame Buffer
- HDU 3466 Proud Merchants 贪心+dp
- Shiro中的加密和验证策略
- HDUoj 5113 Black And White (dfs&剪枝
- 欢迎使用CSDN-markdown编辑器
- vs2013 mfc Cstring转int、int转Cstring
- Buffer
- lfw数据验证
- mysql连接不到数据库
- ScalaHbase 使用scala 操作hbase
- BIO、NIO和AIO的区别
- Java初体验
- Leetcode 39: python可变类型复制(浅拷贝和深拷贝)
- 每日随笔_RenderTexture
- Bootstrap 学习网站