NIO-java.nio.ByteBuffer中flip、rewind、clear方法的区别
原文链接 作者:Jakob Jenkov 译者:airu 校对:丁一
Buffer的基本用法
- 写入数据到Buffer
- 调用flip()方法
- 从Buffer中读取数据
- 调用clear()方法或者compact()方法
Buffer的capacity,position和limit
- capacity
- position
- limit
![](/assets/blank.gif)
capacity
position
limit
Buffer的类型
- ByteBuffer
- MappedByteBuffer
- CharBuffer
- DoubleBuffer
- FloatBuffer
- IntBuffer
- LongBuffer
- ShortBuffer
Buffer的分配
1 | ByteBuffer buf = ByteBuffer.allocate(48); |
1 | CharBuffer buf = CharBuffer.allocate(1024); |
向Buffer中写数据
- 从Channel写到Buffer。
- 通过Buffer的put()方法写到Buffer里。
1 | int bytesRead = inChannel.read(buf); //read into buffer. |
1 | buf.put(127); |
flip()方法
从Buffer中读取数据
- 从Buffer读取数据到Channel。
- 使用get()方法从Buffer中读取数据。
1 | //read from buffer into channel. |
2 | int bytesWritten = inChannel.write(buf); |
1 | byte aByte = buf.get(); |
rewind()方法
clear()与compact()方法
mark()与reset()方法
equals()与compareTo()方法
equals()
- 有相同的类型(byte、char、int等)。
- Buffer中剩余的byte、char等的个数相等。
- Buffer中所有剩余的byte、char等都相同。
compareTo()方法
- 第一个不相等的元素小于另一个Buffer中对应的元素 。
- 所有元素都相等,但第一个Buffer比另一个先耗尽(第一个Buffer的元素个数比另一个少)。
- limit:所有对Buffer读写操作都会以limit变量的值作为上限。
- position:代表对缓冲区进行读写时,当前游标的位置。
- capacity:代表缓冲区的最大容量(一般新建一个缓冲区的时候,limit的值和capacity的值默认是相等的)。
clear方法
flip方法
rewind方法
转载于:https://www.cnblogs.com/wzj4858/p/8205587.html
NIO-java.nio.ByteBuffer中flip、rewind、clear方法的区别相关推荐
- Java的Map中的map.keySet()方法
参考: java 常用的数据结构 一:Java的Map中的map.keySet()方法 该方法返回map中所有key值的列表. 今天再代码中看到了Map集合中的HashMap的map.keySet() ...
- java引用类型和值类型_[Java教程]JavaScript中值类型和引用类型的区别
[Java教程]JavaScript中值类型和引用类型的区别 0 2017-02-24 00:00:35 JavaScript的数据类型分为两类:原始类型和对象类型.其中,原始类型包括:数字.字符串和 ...
- java foward_java 中sendredirect()和forward()方法的区别
HttpServletResponse.sendRedirect与RequestDispatcher.forward方法都可以实现获取相应URL资源. sendRedirect实现请求重定向,forw ...
- java sendredirect报错_java 中sendredirect()和forward()方法的区别
HttpServletResponse.sendRedirect与RequestDispatcher.forward方法都可以实现获取相应URL资源. sendRedirect实现请求重定向,forw ...
- java有push方法么_[Java教程]js中push和join方法使用介绍
[Java教程]js中push和join方法使用介绍 0 2013-10-09 07:00:17 push和join方法想必大家并不陌生吧,在本文将为大家详细介绍下js中的push和join方法的使用 ...
- java窗体中添加图片_在java窗体程序中添加图片的方法
在java窗体程序中添加图片的方法 发布时间:2020-06-16 11:24:13 来源:亿速云 阅读:148 作者:Leah 这篇文章主要为大家详细介绍了在java窗体程序中添加图片的方法,图文详 ...
- java删除数组中重复元素的方法
java删除数组中重复元素的方法 方法一:for双循环 方法二:利用HashMap,储存元素 方法一:for双循环 1.声明int类型index,该数即可为不重复元素下标,还可统计数组中不重复元素的个 ...
- PHP中静态方法和实例化方法的区别
文章来自:PHP中静态方法和实例化方法的区别 在PHP中类为什么要使用静态方法,有什么好处 不需要实例化?? 可以提高运行效率?? 这是一个经常被时时提出来的问题,很多时候我们以为理解了.懂了,但深究 ...
- python frozenset_Python中set与frozenset方法和区别详解
set(可变集合)与frozenset(不可变集合)的区别: set无序排序且不重复,是可变的,有add(),remove()等方法.既然是可变的,所以它不存在哈希值.基本功能包括关系测试和消除重复元 ...
- HTTP协议中GET和POST方法的区别
本文详细对比了HTTP协议中GET和POST方法的区别,部分内容可能有误,读者请自行甄别. 转自博客https://sunshinevvv.coding.me/blog/2017/02/09/Http ...
最新文章
- EXT iconCls说明
- 一文详解NDT算法实现
- mysql select表达式_MySQL数据库SELECT查询表达式解析
- eclipse-可视化swing设计插件windowbuilder
- java广告投放系统_[Spring cloud 一步步实现广告系统] 5. 投放系统配置+启动+实体类...
- CString string 转换
- ae连续流动的线条_贡献 | AE片头制作绝对经验
- java复习题_java习题-(static)
- 前端开发 css样式的简写
- canvas节点无法导出图片_开源小程序,练手必备,仿“美图秀秀”处理图片。
- Linq原理相关(隐式类型var、匿名类型、实例化类、集合初始化)
- 考上985能改变命运吗_南开研究生称读研改变命运被嘲讽,网友:本科垃圾,考上985也没用...
- 得力计算机dl1526第15个音乐,得力dl1526乐谱 | 手游网游页游攻略大全
- luarocks - 介绍
- 2021年T电梯修理免费试题及T电梯修理考试试卷
- Pano2VR制作全景图子菜单导航
- Mars3D中 popup 弹窗问题汇总
- 每日一题【62】导数-公切线问题
- 不要浪费时间跟踪技术债务
- DBeaver 环境配置
热门文章
- 解决织梦 \include\userlogin.class.php on line 21(或16) 报错的方法
- BCALV* 查看所有ALV DEMO
- [转]ASP.NET实用技巧
- Flutter CupertinoSliverRefreshControl 苹果风格的刷新效果
- 精通Android自定义View(十一)绘制篇Canvas分析之裁剪
- (4.28)for xml path 在合并拆分上的作用演示
- openstack 王者归来学习笔记
- 编辑器Ultraedit快捷键
- python-文件操作(1)
- CentOS6.5 安装ORACLE 安装界面乱码解决方案