java.nio.ByteBuffer中flip、rewind、clear方法的区别
对缓冲区的读写操作首先要知道缓冲区的下限、上限和当前位置。下面这些变量的值对Buffer类中的某些操作有着至关重要的作用:
- limit:所有对Buffer读写操作都会以limit变量的值作为上限。
- position:代表对缓冲区进行读写时,当前游标的位置。
- capacity:代表缓冲区的最大容量(一般新建一个缓冲区的时候,limit的值和capacity的值默认是相等的)。
flip、rewind、clear这三个方法便是用来设置这些值的。
clear方法
public final Buffer clear()
{
position = 0; //重置当前读写位置
limit = capacity;
mark = -1; //取消标记
return this;
}
clear方法将缓冲区清空,一般是在重新写缓冲区时调用。
flip方法
public final Buffer flip() {
limit = position;
position = 0;
mark = -1;
return this;
}
反转缓冲区。首先将限制设置为当前位置,然后将位置设置为 0。如果已定义了标记,则丢弃该标记。 常与compact方法一起使用。通常情况下,在准备从缓冲区中读取数据时调用flip方法。
rewind方法
1public final Buffer rewind() {
2 position = 0;
3 mark = -1;
4 return this;
5}
以上三种方法均使用final修饰,java.nio.Buffer的所有子类均使用同一种flip、clear和rewind机制。
java.nio.ByteBuffer中flip、rewind、clear方法的区别相关推荐
- [转] java.nio.ByteBuffer中flip、rewind、clear方法的区别
转载 对缓冲区的读写操作首先要知道缓冲区的下限.上限和当前位置.下面这些变量的值对Buffer类中的某些操作有着至关重要的作用: limit:所有对Buffer读写操作都会以limit变量的值作为上限 ...
- java nio rewind_NIO-java.nio.ByteBuffer中flip、rewind、clear方法的区别
原文链接 作者:Jakob Jenkov 译者:airu 校对:丁一 Java NIO中的Buffer用于和NIO通道进行交互.如你所知,数据是从通道读入缓冲区,从缓冲区写入到 ...
- NIO-java.nio.ByteBuffer中flip、rewind、clear方法的区别
原文链接 作者:Jakob Jenkov 译者:airu 校对:丁一 Java NIO中的Buffer用于和NIO通道进行交互.如你所知,数据是从通道读入缓冲区,从缓冲区写入到 ...
- java nio rewind_java.nio.ByteBuffer中的flip()、rewind()、compact()等方法的使用和区别
java.nio.ByteBuffer 1. ByteBuffer中的参数position.limit.capacity.mark含义: position:表示当前指针的位置(下一个要操作的数据元素的 ...
- java.nio.Buffer 中的 flip()方法
在Java NIO编程中,对缓冲区操作常常需要使用 java.nio.Buffer中的 flip()方法. Buffer 中的 flip() 方法涉及到 Buffer 中的capacity.posi ...
- hbase 2.4 java.lang.NoSuchMethodError: java.nio.ByteBuffer.rewind()Ljava/nio/ByteBuffer
hbase 2.4集群环境启动报错,java.lang.NoSuchMethodError: java.nio.ByteBuffer.rewind()Ljava/nio/ByteBuffer 详细 ...
- java.nio.ByteBuffer用法小结
转载自 java.nio.ByteBuffer用法小结 在NIO中,数据的读写操作始终是与缓冲区相关联的.读取时信道(SocketChannel)将数据读入缓冲区,写入时首先要将发送的数据按顺序填入 ...
- Java的Map中的map.keySet()方法
参考: java 常用的数据结构 一:Java的Map中的map.keySet()方法 该方法返回map中所有key值的列表. 今天再代码中看到了Map集合中的HashMap的map.keySet() ...
- java foward_java 中sendredirect()和forward()方法的区别
HttpServletResponse.sendRedirect与RequestDispatcher.forward方法都可以实现获取相应URL资源. sendRedirect实现请求重定向,forw ...
最新文章
- 07 Java面试反射原理
- python的集合运算和set相关操作
- 【爬虫笔记】Scrapy爬虫技术文章网站
- Intellij IDEA 2019 自动生成 serialVersionUID
- 【solr专题之四】在Tomcat 中部署Solr4.x
- FastReport.Net 使用字符串
- SpringAOP Aspect注解实现简单日志功能
- ArcEngine开发之自定义工具
- 基于transformer的车辆识别
- python画太阳花输出为图片文件
- C++校内模拟赛-06水题
- 驻点、极值点、拐点间的区别和联系
- 数据库原理题型 - 选择题
- JAVA用爬山法解决八皇后问题_八皇后问题爬山法实现(C语言)
- [Python] RSS 文字转图片并单独抓取url以文字输出
- 【Android】带可输入功能的下拉框EditSpinner,附带Filter功能
- 美国Disqus、国内JiaThis、友言、评论啦、搜狐畅言 评论系统(第三方评论系统)
- Android studio 电话号码归属地查询app简易版
- java 日文片假名半角转全角_日文 全角/半角 平假名/片假名 的转换
- C/C++:全排列问题