NIO之Buffer
Buffer
其实在Buffer中官方的javadoc中已经讲得非常清楚了,本篇博客是本人做为笔记使用。
下面是我截取的javadoc很详细的介绍了关于mark,position,limit,capacity以及常用方法clear,flip,rewind。
以下是我使用的一个案例
public static void test1(){
//创建缓冲区
ByteBuffer buff = ByteBuffer.allocate(1024);
System.out.println("-----allocate-----");
System.out.println(buff.position());
System.out.println(buff.limit());
System.out.println(buff.capacity());
//存入数据
System.out.println("-----put-----");
buff.put("abcde".getBytes());
System.out.println(buff.position());
System.out.println(buff.limit());
System.out.println(buff.capacity());
//切换成读模式
System.out.println("-----flip-----");
buff.flip();
System.out.println(buff.position());
System.out.println(buff.limit());
System.out.println(buff.capacity());
//读数据
System.out.println("-----get-----");
byte[] temp = new byte[buff.limit()];
buff.get(temp);
System.out.println(new String(temp));
System.out.println(buff.position());
System.out.println(buff.limit());
System.out.println(buff.capacity());
//重复读
System.out.println("-----rewind-----");
buff.rewind();
System.out.println(buff.position());
System.out.println(buff.limit());
System.out.println(buff.capacity());
//清空缓冲区
System.out.println("-----clear-----");
buff.clear();
System.out.println(buff.position());
System.out.println(buff.limit());
System.out.println(buff.capacity());
}
输出结果
-——allocate——-
0
1024
1024
-——put——-
5
1024
1024
-——flip——-
0
5
1024
-——get——-
abcde
5
5
1024
-——rewind——-
0
5
1024
-——clear——-
0
1024
1024
个人从这位老师的视频学习到了不少,大家也可以看下//www.bilibili.com/video/BV14W411u7ro
还没有评论,来说两句吧...