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 占用的非托管资源,还可以另外再释放托管资源。