问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁能帮我解释下java的NIO包中ByteBuffer类的clear(),flip(),rewind()方法的意思,这些方法有什么作用?

发布网友 发布时间:2022-04-24 16:00

我来回答

1个回答

热心网友 时间:2023-10-21 04:11

首先澄清一点:这三个方法都是ByteBuffer的抽象基类Buffer定义的方法,ByteBuffer只是继承了它们。

****************************************************
其次,你要理解缓冲区的概念,就是Buffer的意义:缓冲区是特定基本类型元素的线性有限序列。除内容外,缓冲区的基本属性还包括容量、*和位置:

缓冲区的容量 是它所包含的元素的数量。缓冲区的容量不能为负并且不能更改。

缓冲区的* 是第一个不应该读取或写入的元素的索引。缓冲区的*不能为负,并且不能大于其容量。

缓冲区的位置 是下一个要读取或写入的元素的索引。缓冲区的位置不能为负,并且不能大于其*。

任何插入或读取都不能超出*。

标记、位置、*和容量值遵守以下不变式:

0 <= 标记 <= 位置 <= * <= 容量
新创建的缓冲区总有一个 0 位置和一个未定义的标记。初始*可以为 0,也可以为其他值,这取决于缓冲区类型及其构建方式。一般情况下,缓冲区的初始内容是未定义的。

******************************************************

clear() 使缓冲区为一系列新的通道读取或相对放置 操作做好准备:它将*设置为容量大小,将位置设置为 0。
通道读取指从通道将数据读入到buffer中,相对放置是从位置开始将数据插入到buffer中

flip() 使缓冲区为一系列新的通道写入或相对获取 操作做好准备:它将*设置为当前位置,然后将位置设置为 0。
把*设置为当前位置是为了保证数据的可靠性。让从buffer写入到通道的数据是buffer中确实是已经存在的数据。

rewind() 使缓冲区为重新读取已包含的数据做好准备:它使*保持不变,将位置设置为 0。
和clear()类似,只是不改动*

这三个方法在源码上就对缓冲区的数据不进行任何修改
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
美国在多少个国家有驻军? 美国在哪些国家有驻军? 美国在哪些国家派有驻军? 美国在其本土以外的驻军有多少 美国都在哪些国家有驻军 空调制热的正确调法 守捉郎与侠客行 《长安十二时辰》乱弹之五 小孩子给母亲节的祝福 孩子送给妈妈的母亲节祝福语句子2024 中国篮球a级教练都是谁 Stop Rewind是什么意思 “calls for rewind” 什么意思 ReWind做个标志是什么意思 rewind函数的具体实现? 公立学校没要学生购买意外保险有无责任? rewind(stdin)和fflush(stdin) 的有什么区别(意义,用法等等) php里面函数rewind什么意思? 小学生入学必须交保险么?学校说是教体局统一发放的声明 TOMA相机上的rewind怎么用?什么时候用? 学校要求每位学生都购买商业保险,这一行为是否合法? 独孤rewind是什么意思 小学学校给学生买保险 rewinad的中文是什么意思 c语言中的rewind()是什么意思 学校是不是都会给学生购买保险?是什么保险 rewind的中文是什么意思? 小学的保险费是强制交的吗? 现在的小学生学校都有买保险吗?? 学校会给学生买学生意外险吗? 现在中小学学校里面给学生买的是什么保险公司的保险呐? rewind对我而言可爱的她歌词 拼音版 Rewind/Unwind这是什么意思? C语主中rewind(stdin)中括号里的是什么意思 rewind repeat it 什么意思 微信视频聊天背景可以修改吗? c初学者的问题3 别克轿车音响按键英文都是什么意思 英文翻译一下 华为手机充电久了开不了机,如何强制开机? 怎样换华为p9总成视屏 华为p9plus外屏摔碎了 是换玻璃屏就好 还是要换总成 !华为p9plus是一体屏吗 华为p9屏碎了,怎么换原装屏,多少钱 iPhone 6来电显示怎么设置? 我的是苹果六,为什么来电会报对方的姓名?有解决办法吗? 苹果iPhone6来电铃声不响了,接不到电话怎么办 鸡蛋果的品种分类 鸡蛋果有哪些品种?有没有紫色的。 百香果和西番莲的区别 这个鸡蛋果怎么吃的,去皮吃起来不好吃的 蛋黄果什么时候成熟