byteBuffer的理解和使用
来源:互联网 发布:windows垃圾清理软件 编辑:程序博客网 时间:2024/06/05 17:31
@(技术博客)
定义
ByteBuffer类是在Java NIO中常常使用的一个缓冲区类,使用它可以进行高效的IO操作其中,ByteBuffer主要有(1)存储的内容(2)bytebuffer的信息 mark——标记 position——位置 limit——限制 capacity——容量 0 <= 标记 <= 位置 <= 限制 <= 容量
操作
(1)对存储内容和bytebuffer的信息同时操作 1)mbytebuffer=Bytebuffer.allocate(int size); 注: 除boolean型外,char/int/short/long/float/double等,都提供了get/put方法,用于向ByteBuffer进行读写 a.参数: size :就是capacity(其中capacity不变) b.变化: 数据:木有 mark:-1 positon:0 limit=capacity 2)mbytebuffer.put(byte[] bytes); a.参数: 从bytes获取数据放到mbytebuffer上 b.变化: 数据:存入bytes数据 mark: position:假设length为bytes的长度,那么position=position+length limit:limit=capacity 3)mbytebuffer.get(byte[] bytes, int offset, int length); a.参数: 将bytes的position位置开始到position+length 的数据 放到 bytes上 其中,从bytes的第offset位开始放数据 b.变化: 数据:不变 mark: position:position=position+length limit:limit=capacity(2)只对bytebuffer的信息进行操作: 1)mbytebuffer.mark() a.变化: mark=position 2)mbytebuffer.flip() a.变化: mark=-1 limit=position position=0 3)mbytebuffer.clean() a.变化: mark=-1 limit=capacity position=0 4)mbytebuffer.reset() a.变化: mark不变 position=mark limit不变 5)mbytebuffer.rewind() a.变化: mark=-1 position=0 limit不变(3)其他操作: 1)mbytebuffer.slice() 描述:创建新的字节缓冲区,其内容是此缓冲区内容的共享子序列。新缓冲区的内容将从此缓冲区的当前位置开始。此缓冲区内容的更改在新缓冲区中是可见的,反之亦然;这两个缓冲区的位置、界限和标记值是相互独立的。新缓冲区的position将为零,其capacity和limit将为此缓冲区中所剩余的字节数量,其标记是不确定的。 2)duplicate() 描述: 创建共享此缓冲区内容的新的字节缓冲区。新缓冲区的内容将为此缓冲区的内容。此缓冲区内容的更改在新缓冲区中是可见的,反之亦然;这两个缓冲区的位置、界限和标记值是相互独立的。新缓冲区的容量、界限、位置和标记值将与此缓冲区相同。 3)compact() 描述:将缓冲区的当前位置和界限之间的字节(如果有)复制到缓冲区的开始处。
阅读全文
0 0
- byteBuffer的理解和使用
- ByteBuffer 使用与理解
- 使用ByteBuffer和MappedByteBuffer的简单例子
- ByteBuffer的使用
- android byteBuffer的使用
- 简述ByteBuffer的使用
- 使用NIO的FileChannel和ByteBuffer高效读取文件
- byteBuffer的使用之道
- ByteBuffer的allocate和allocateDirect
- ByteBuffer的allocate和allocateDirect
- ByteBuffer的allocate和allocateDirect
- ByteBuffer的allocate和allocateDirect
- ByteBuffer的allocate和allocateDirect
- 对 java.nio.ByteBuffer 的粗浅理解
- ByteBuffer.allocate()和ByteBuffer.allocateDirect在性能上的差异
- (Mina的ByteBuffer和java.nio.ByteBuffer性能对比)Performance comparision of Mina's ByteBuffer VS java.nio.ByteBuffer use.
- ByteBuffer使用
- ByteBuffer使用
- 逗比日记_提高情商
- Activity页面之间数据传递
- 10分钟搭建OpenGrok代码搜索引擎
- 内核调试 之 搭建qmeu 调试环境
- zhihu-spider之Lombok——zhihu-spider开源项目使用技术详解(其一)
- byteBuffer的理解和使用
- 异步任务AsyncTask
- Openblas加速三维矩阵卷积操作-增加num_output计算
- C语言实现单向链表
- Java 8 forEach 示例
- POJ 2255 Tree Recovery 笔记
- Nginx反向代理及负载均衡
- CM3(STM32)内核复位与系统复位区别及应用
- 2016年最火编程语言:谷歌Go排名第一