永发信息网

FileStream的Read中的offset为什么只能从0开始

答案:1  悬赏:80  手机版
解决时间 2021-11-17 05:20
  • 提问者网友:佞臣
  • 2021-11-16 17:48
FileStream的Read中的offset为什么只能从0开始
最佳答案
  • 五星知识达人网友:玩家
  • 2021-11-16 18:12
1、FileStream 继承自 Stream。

Stream 表示逗流地(这个概念在计算机中非常常见,题主可以自行搜索相关资料),本质上是一种字节序列。说穿了,计算机只认识0和1,那么这么丰富多彩的文本、音乐、视频,归根结底都是转换成字节存储在内存与硬盘中的。

Stream 对象有一个属性 Length,表示这个流的长度;还有一个属性 Position,表示这个流当前的位置。

Stream.Read(byte[] array, int offset, int count);

array 表示缓冲区;offset 表示从流的当前位置(也就上面说的 Position)偏移多少个字节开始读;count 表示读取多少个字节。该方法返回的是实际上读取了多少个字节(永远小于等于 count),如果该值等于 0,说明已经到流的末尾了。读取之后,这个流的 Position 就会发生变化。

为什么要缓冲区看因为一个流很可能非常大,一次性的加载是不现实的,所以需要分块来读取,存储每个分块的这个字节数组就叫做逗缓冲区地。

2、底层调用的是 kernel32.dll 中的 Windows API 方法 ReadFile()
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯