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:13 helloWorlposition:9 limit:13 ____ position:4 limit:13 d123oWor____ dposition:1 limit:13 position:1 limit:13
可以看出compact()方法是将position到limit后面的所有字符串复制到buff最前面,同时postion设置为(所复制串长度-1)
java bytebuffer 测试
最新推荐文章于 2022-07-15 23:30:53 发布