关于ByteBuffer
来源:互联网 发布:网页菜单制作软件 编辑:程序博客网 时间:2024/05/20 02:29
几种位置和当前指针
起始位置:0
终止位置:capacity
当前位置:position
limit位置:limit
常用方法:
rewind():重新返回起始0位置
position():把当前指针设置到某个位置
capacity():buffer数组的长度,最大值
limit():限制当前buffer数组中可用的位置。如果调用position()方法后的position大于limit,则position设置为limit。调用put类似的方法后,position的位置不能大于limit,否则会抛出java.nio.BufferOverflowException异常
flip():作用是把limit设置到当前的指针(position),然后当前的指针设置到0
clear():将position设置为 0,将limit设置为capacity,但是并不清除实际的数据,只是把标记重置,看起来好像清除了数据
起始位置:0
终止位置:capacity
当前位置:position
limit位置:limit
常用方法:
rewind():重新返回起始0位置
position():把当前指针设置到某个位置
capacity():buffer数组的长度,最大值
limit():限制当前buffer数组中可用的位置。如果调用position()方法后的position大于limit,则position设置为limit。调用put类似的方法后,position的位置不能大于limit,否则会抛出java.nio.BufferOverflowException异常
flip():作用是把limit设置到当前的指针(position),然后当前的指针设置到0
clear():将position设置为 0,将limit设置为capacity,但是并不清除实际的数据,只是把标记重置,看起来好像清除了数据
compact():把当前从position位置到limit位置的字节移动到从0开始
package io;import java.nio.ByteBuffer;public class ByteBufferTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ByteBuffer bb = ByteBuffer.allocate(10); v(bb.capacity());//初始的capacity为10 v(bb.limit());//初始的limit为10 //printBuffer(bb); v(bb.position()); bb.putChar('a'); v(bb.position()); //因为char类型占两个字节,所以指针指向2 //bb.limit(2);//如果limit设置为2,调用下句会出现异常 bb.put("asd".getBytes());//放入三个字节数据 v(bb.position());//position变成5 bb.flip(); v(bb.position());//position变成0 v(bb.limit());//limit变成5 bb.position(1);//把当前位置变成1 bb.compact();//把后面的字节先前移动一个位置 v(bb.position());//当前的position变为4 v(bb.limit());//limit重置为capacity printBuffer(bb); bb.clear(); v(bb.position());//当前的position变为0 v(bb.limit());//limit重置为capacity System.exit(0); } public static void v(Object o){ System.out.println(o); } public static void printBuffer(ByteBuffer buffer){ int p = buffer.position(); buffer.position(0); for(int i=0;i<buffer.limit();i++){ v(Integer.toHexString(buffer.get())); } buffer.position(p); }}
- 关于ByteBuffer
- 关于ByteBuffer使用解释
- 关于ByteBuffer的一些知识
- 关于ByteBuffer、MappedByteBuffer类学习
- ByteBuffer
- ByteBuffer
- ByteBuffer
- ByteBuffer
- ByteBuffer
- ByteBuffer
- ByteBuffer
- ByteBuffer
- 关于java.nio.ByteBuffer的一些杂七杂八。
- 关于java在NIO中使用bytebuffer
- 关于ByteBuffer中flip和rewind方法的作用说明
- ByteBuffer用法
- ByteBuffer使用
- java bytebuffer
- 使用Ant进行ssh和scp操作
- Project Euler 50
- 关于UITableView,你知道多少
- Linux fork返回值
- 数据结构----二叉树遍历的非递归算法实现
- 关于ByteBuffer
- 【物联网智能网关-15】WAV播放器(WinForm+WavPlay库实例)
- [C++]数据结构:算法分析之八皇后问题
- .NET中六个你必须知道的重要概念之装箱(boxing)和拆箱(unboxing)
- Spring事务-所有客户端代码
- hdu 2044 一只小蜜蜂
- SSH和dwr整合实现在同一个页面的增加修改时id不一致的问题
- udp通信简单实例
- FAQ_22 Cursor 遍历数据库