C# I/O 流 : Stream

Stream 所有流的抽象基类。

数据流(Stream) 是对串行传输数据的一种抽象表示,是对输入输出的一种抽象 数据有来源和目的地,衔接两者的就是串流对象


流是数据来往的管道

读取是将数据从流(管道)传输到数据结构中
写入是将数据从数据结构传输到流(管道)中


具体的属性和方法将在Stream的子类中写示例

内容摘自:https://learn.microsoft.com/zh-cn/dotnet/api/system.io.stream?view=net-7.0

一.字段

Null     
无后备存储区的 Stream。

二.属性

Position     
当在派生类中重写时,获取或设置当前流中的位置。

Length     
当在派生类中重写时,获取流长度(以字节为单位)。

CanWrite     
当在派生类中重写时,获取指示当前流是否支持写入功能的值。

CanTimeout     
获取一个值,该值确定当前流是否可以超时。

CanSeek     
当在派生类中重写时,获取指示当前流是否支持查找功能的值。

CanRead     
当在派生类中重写时,获取指示当前流是否支持读取的值。

ReadTimeout     
获取或设置一个值(以毫秒为单位),该值确定流在超时前将尝试读取的时间。

WriteTimeout     
获取或设置一个值(以毫秒为单位),该值确定流在超时前将尝试写入多长时间。

三.方法

BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)     
开始异步读操作。 (请考虑改用 ReadAsync(Byte[], Int32, Int32)。)

BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)     
开始异步写操作。 (请考虑改用 WriteAsync(Byte[], Int32, Int32)。)

Close()     
关闭当前流并释放与之关联的所有资源(如套接字和文件句柄)。 不直接调用此方法,而应确保流得以正确释放。

CopyTo(Stream)     
从当前流中读取字节并将其写入到另一流中。

CopyTo(Stream, Int32)     
使用指定的缓冲区大小,从当前流中读取字节并将其写入到另一流中。

CopyToAsync(Stream)     
从当前流中异步读取字节并将其写入到另一个流中。

CopyToAsync(Stream, CancellationToken)     
通过指定的取消令牌,从当前流中异步读取字节并将其写入到另一个流中。

CopyToAsync(Stream, Int32)     
使用指定的缓冲区大小,从当前流中异步读取字节并将其写入到另一流中。

CopyToAsync(Stream, Int32, CancellationToken)     
使用指定的缓冲区大小和取消令牌,从当前流中异步读取字节并将其写入到另一个流中。

Dispose()     
释放由 Stream 使用的所有资源。

EndRead(IAsyncResult)     
等待挂起的异步读取完成。 (请考虑改用 ReadAsync(Byte[], Int32, Int32)。)

EndWrite(IAsyncResult)     
结束异步写操作。 (请考虑改用 WriteAsync(Byte[], Int32, Int32)。)

Flush()     
当在派生类中重写时,将清除该流的所有缓冲区,并使得所有缓冲数据被写入到基础设备。

FlushAsync()     
异步清除此流的所有缓冲区并导致所有缓冲数据都写入基础设备中。

FlushAsync(CancellationToken)     
异步清理此流的所有缓冲区,导致所有缓冲数据都写入基础设备,并且监控取消请求。

Read(Byte[], Int32, Int32)     
当在派生类中重写时,从当前流读取字节序列,并将此流中的位置提升读取的字节数。

ReadAsync(Byte[], Int32, Int32)     
从当前流异步读取字节序列,并将流中的位置提升读取的字节数。

ReadAsync(Byte[], Int32, Int32, CancellationToken)     
从当前流异步读取字节的序列,将流中的位置提升读取的字节数,并监视取消请求。

ReadByte()     
从流中读取一个字节,并将流内的位置向前提升一个字节,或者如果已到达流结尾,则返回 -1。

Seek(Int64, SeekOrigin)     
当在派生类中重写时,设置当前流中的位置。

SetLength(Int64)     
当在派生类中重写时,设置当前流的长度。

Write(Byte[], Int32, Int32)     
当在派生类中重写时,向当前流中写入字节序列,并将此流中的当前位置提升写入的字节数。

WriteAsync(Byte[], Int32, Int32)     
将字节序列异步写入当前流,并将流的当前位置提升写入的字节数。

WriteAsync(Byte[], Int32, Int32, CancellationToken)     
将字节的序列异步写入当前流,将该流中的当前位置向前移动写入的字节数,并监视取消请求。

WriteByte(Byte)     
将一个字节写入流内的当前位置,并将流内的位置向前提升一个字节。

Dispose(Boolean)     
释放由 Stream 占用的非托管资源,还可以另外再释放托管资源。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1.1 什么是Stream? 1.2 什么是字节序列? 1.3 Stream的构造函数 1.4 Stream的重要属性及方法 1.5 Stream的示例 1.6 Stream异步读写 1.7 Stream 和其子类的类图 2.1 为什么要介绍 TextReader? 2.2 TextReader的常用属性和方法 2.3 TextReader 示例 2.4 从StreamReader想到多态 2.5 简单介绍下Encoding 编码 2.6 StreamReader 的定义及作用 2.7 StreamReader 类的常用方法属性 2.8 StreamReader示例 3.1 为何介绍TextWriter? 3.2 TextWriter的构造,常用属性和方法 3.3 IFormatProvider的简单介绍 3.4 如何理解StreamWriter? 3.5 StreamWriter属性 3.6 StreamWriter示例 4.1 如何去理解FileStream? 4.2 FileStream的重要性 4.3 FileStream常用构造函数(重要) 4.4 非托管参数SafeFileHandle简单介绍 4.5 FileStream常用属性介绍 4.6 FileStream常用方法介绍 4.7 FileStream示例1:*文件的新建和拷贝(主要演示文件同步和异步操作) 4.8 FileStream示例2:*实现文件本地分段上传 5.1 简单介绍一下MemoryStream 5.2 MemoryStream和FileStream的区别 5.3 通过部分源码深入了解下MemoryStream 5.4 分析MemorySteam最常见的OutOfMemory异常 5.5 MemoryStream 的构造 5.6 MemoryStream 的属性 5.7 MemoryStream 的方法 5.8 MemoryStream 简单示例 : XmlWriter中使用MemoryStream 5.9 MemoryStream 简单示例 :自定义一个处理图片的HttpHandler 6.1 简单介绍一下BufferedStream 6.2 如何理解缓冲区? 6.3 BufferedStream的优势 6.4 从BufferedStream 中学习装饰模式 6.5 如何理解装饰模式 6.6 再次理解下装饰模式在Stream中的作用 6.7 BufferedStream的构造 6.8 BufferedStream的属性 6.9 BufferedStream的方法 6.10 简单示例:利用socket 读取网页并保存在本地 7.1 NetworkStream的作用 7.2 简单介绍下TCP/IP 协议和相关层次 7.3 简单说明下 TCP和UDP的区别 7.4 简单介绍下套接字(Socket)的概念 7.5 简单介绍下TcpClient,TcpListener,IPEndPoint类的作用 7.6 使用NetworkStream的注意事项和局限性 7.7 NetworkStream的构造 7.8 NetworkStream的属性 7.9 NetworkStream的方法 7.10 NetwrokStream的简单示例 7.11 创建一个客户端向服务端传输图片的小示例 版权归作者所有,仅供学习参考

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一梭键盘任平生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值