public class buffer_test {
public static void main(String[] args) {
String s="hello word";
ByteBuffer b=ByteBuffer.allocate(1024);
System.out.println(b.position());
System.out.println(b.limit());
System.out.println(b.capacity());
System.out.println(b.array());
System.out.println("put-------------");
b.put(s.getBytes());
System.out.println(b.position());
System.out.println(b.limit());
System.out.println(b.capacity());
System.out.println(b.array());
System.out.println("flip----------");
//切换模式
b.flip();
System.out.println(b.position());
System.out.println(b.limit());
System.out.println(b.capacity());
//读缓冲器
System.out.println("read-------------");
byte [] c=new byte[b.limit()];
b.get(c);
for(int i=0;i<c.length;i++)
System.out.print((char)c[i]);
System.out.println();
System.out.println(b.position());
System.out.println(b.limit());
System.out.println(b.capacity());
System.out.println("rewind---------");
//重复读
b.rewind();
for(int i=0;i<c.length;i++)
System.out.print((char)c[i]);
System.out.println();
System.out.println(b.position());
System.out.println(b.limit());
System.out.println(b.capacity());
//把position位置给mark
//b.mark();
//处理只是把位置回到最先的位置
System.out.println("clear==========");
b.clear();
System.out.println(b.position());
System.out.println(b.limit());
System.out.println(b.capacity());
//判断是否为直接缓冲区
System.out.println("-------------");
System.out.println(b.isDirect());
}
}