Stream 所有流的抽象基类。
数据流(Stream) 是对串行传输数据的一种抽象表示,是对输入输出的一种抽象 数据有来源和目的地,衔接两者的就是串流对象
流是数据来往的管道
读取是将数据从流(管道)传输到数据结构中
写入是将数据从数据结构传输到流(管道)中
具体的属性和方法将在Stream的子类中写示例
一.字段
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 占用的非托管资源,还可以另外再释放托管资源。