为什么FileStream.Length是long类型,但是FileStream.Read参数 - offset的长度更短?

Bry*_*Fok 8 c#

为什么FileStream.Length是long类型,但FileStream.Read参数 - offset的长度为int而不是?

布赖恩

Guf*_*ffa 6

偏移量是放置数据的字节数组的索引.您不能分配大于2 GB的数组,因此不需要更大的数字用于偏移.

  • @SimonSvensson:这通常会更改数组的限制,但不会更改单维字节数组的限制。*“对于字节数组,任何单个维度的最大索引为 2,147,483,591 (0x7FFFFFC7)”* (2认同)

sis*_*sve 5

offset参数告诉您在数组中开始写入数据的位置,即array参数.它没有指出文件数据中的偏移量.

所述偏移参数给出偏移的字节的数组(缓冲器索引),在该开始读取,并且计数参数给出从该流读取的字节的最大数量.返回的值是读取的实际字节数,如果到达流的末尾则返回零.如果读取操作成功,则将当前位置的流提前读取的字节数.如果发生异常,则流的当前位置不变.

来源:FileStream.Read