Stream.Read 与 Stream.Write 介绍

Stream.Read 与 Stream.Write 这两个方法都是三个参数:byte[] buffer, int offset, int count

但是这个 offset 到底是指 Stream 的还是 buffer 的呢?count 到底是指 Stream 的还是 buffer 的呢?还有一些细节,我们一同介绍如下 :

Stream.Read

从 Stream 的 Position 开始读取 count 个字节序列。

然后将读取出来的字节序列从 buffer 的 offset 位置开始存储在 buffer 中。

最后 Stream 的 Position 位置向后移动(读了多少个就移动多少)。

这个方法返回的是实际读取的字节数(因为流中也许没有 count 那么多字节)。

Stream.Write

从 buffer 的 offset 位置开始读取 count 个字节序列。

然后将读取出来的字节序列从 Stream 的 Position 位置开始存储在 Stream 中。

最后 Stream 的 Position 位置向后移动(写了多少个就移动多少)。

总结

  • 读写 Stream 时,始终从 Stream 的 Position 开始。
  • 读写 Stream 后,始终将 Stream 的 Position 后移。
  • 读写 buffer 时,始终从 offset 开始。
  • 而具体要操作多少个字节序列,则 count 决定。

posted on   itjeff  阅读(350)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2021-03-02 c# 委托 delegate
2021-03-02 C#中的值类型和引用类型

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示