java bytebuffer 测试

来源:互联网 发布:概念店是什么意思知乎 编辑:程序博客网 时间:2024/05/17 23:00
public static void main(String[] args) {   String str = "helloWorld123";         ByteBuffer buff  = ByteBuffer.wrap(str.getBytes());  //       buff.allocate(100);       System.out.println("position:"+buff.position()+"\t limit:"+buff.limit());         //读取两个字节  getInt()读取4个字节//       System.out.println(buff.getInt());  //       System.out.println((char)buff.get());//       System.out.println((char)buff.get());//       System.out.println((char)buff.get());//       System.out.println("position:"+buff.position()+"\t limit:"+buff.limit());   //       buff.mark();       System.out.print((char)buff.get());       System.out.print((char)buff.get());       System.out.print((char)buff.get());       System.out.print((char)buff.get());       System.out.print((char)buff.get());       System.out.print((char)buff.get());       System.out.print((char)buff.get());       System.out.print((char)buff.get());       System.out.print((char)buff.get());//       buff.rewind();//       buff.clear();       System.out.println("position:"+buff.position()+"\t limit:"+buff.limit());        buff.compact();       System.out.println("____");       System.out.println("position:"+buff.position()+"\t limit:"+buff.limit());        buff.position(0);       System.out.print((char)buff.get());       System.out.print((char)buff.get());       System.out.print((char)buff.get());       System.out.print((char)buff.get());       System.out.print((char)buff.get());       System.out.print((char)buff.get());       System.out.print((char)buff.get());       System.out.print((char)buff.get());       System.out.println("____");//       System.out.println("position:"+buff.position()+"\t limit:"+buff.limit());       buff.clear();         System.out.print((char)buff.get());       System.out.println("position:"+buff.position()+"\t limit:"+buff.limit());//       System.out.println(buff.order());    //       buff.reset();//清除标记       System.out.println("position:"+buff.position()+"\t limit:"+buff.limit());}


结果:

position:0 limit:13helloWorlposition:9 limit:13____position:4 limit:13d123oWor____dposition:1 limit:13position:1 limit:13

可以看出compact()方法是将position到limit后面的所有字符串复制到buff最前面,同时postion设置为(所复制串长度-1)

原创粉丝点击