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

猜你喜欢

转载自blog.csdn.net/SmillCool/article/details/127782654