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 ...
最新文章
- asio boost 异步错误处理_boost::ASIO的同步方式和异步方式
- 马云的 ATM 梦实现了
- 学会python爬虫怎么赚钱-转行学Python有前途吗?Python爬虫怎么赚钱?
- Java设计模式 - 单例模式详解(下)
- ObjC load与initialize 简析
- 简单易懂的多线程(通过实现Runnable接口实现多线程)
- 爬取京东商品分类和链接
- Java笔试题库之编程题库 总共30道编程题,掌握了就可以应付中级以内Java面试题
- 全球域名服务商域名增量TOP10:中国占据3个席位
- 家用计算机机箱怎么选,一般家用电脑主机买什么配置的比较好
- python字符串驼峰转换_驼峰风格字符串转换为下滑线风格字符串
- 详述近期遭利用的 Atlassian Confluence OGNL 注入漏洞 (CVE-2021-26084)
- 免费赠送2本新书《iOS程序员面试笔试真题与解析》
- 英语翻译软件测试简历,如此翻译-2 - Victor's Testing Career - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
- STM32单片机OLED俄罗斯方块单片机小游戏
- TCP网络编程(基于UDP的网络聊天室)
- React学习总结(一)
- 微信小程序 点击展开收起(点谁谁展开/收起)
- 拇指射箭服务器维护,拇指射箭1小游戏:这个拇指射箭3D游戏有点意思,拇指枪王对决...
- Excel多个工作表合并,如何去除每个工作表中的表头,只保留一个表头
热门文章
- .net 序列化与反序列化
- How to setup linked servers for SQL Server and Oracle 64 bit client
- python beautifulsoup多线程分析抓取网页
- Г函数(伽马函数)、分布
- vSphere共享存储全配置流程
- 任务七:实现常见的技术产品官网的页面架构及样式布局
- chromium浏览器开发系列第五篇:Debugging with WinDBG
- 搭建MVC及WebAPI项目框架时碰到的问题集合
- u盘装xp/win7/ubuntu/fedora总结
- 7-1 最长连续递增子序列 (20 分)