栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如果有足够的数据,FileChannel.read读取的字节数会少于指定的字节数吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如果有足够的数据,FileChannel.read读取的字节数会少于指定的字节数吗?

我可以假设仅当文件中没有足够的字节时,该方法才返回小于给定缓冲区限制的数字吗?

Javadoc说:

读取可能无法填充缓冲区

并举例说明

返回读取的字节数,可能为零;如果通道已到达流末尾,则返回-1。

这还不足以让您做出该假设。

实际上,从文件读取时,您很可能总会获得一个完整的缓冲区,以文件结尾方案为模。考虑到进行系统调用的开销,从OS实施的角度来看这很有意义。

但是,我也可以想象返回半空缓冲区的情况可能很有意义。例如,当通过慢速网络链接从本地安装的远程文件系统中读取数据时,返回部分填充的缓冲区,以便应用程序可以开始处理数据,这具有一些优势。

read
在这种情况下,某些将来的OS可能会实现系统调用。如果假设您将始终获得完整的缓冲区,则当您的应用程序在(假设的)新平台上运行时,您可能会感到惊讶。

另一个问题是,有 一些种类的流在那里你会的 肯定
得到部分填充的缓冲区。套接字流,管道和控制台流是明显的示例。如果您使用文件流行为对应用程序进行编码,那么当有人针对另一种流运行应用程序而失败时,您可能会感到讨厌。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/508059.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号