导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

Stream 类

2013/12/13

提供对字节序列的常规视图。

Namespace:  System.IO
程序集:  mscorlib(位于 mscorlib.dll 中)

声明
Public MustInherit Class Stream _
	Implements IDisposable

Stream 类型公开以下成员。

  名称说明
受保护的方法Stream初始化 Stream 类的新实例。
返回顶部

  名称说明
公共属性CanRead在派生类中重写时,获取指示当前流是否支持读取的值。
公共属性CanSeek在派生类中重写时,获取指示当前流是否支持查找的值。
公共属性CanTimeout获取一个确定当前流能否超时的值。
公共属性CanWrite在重写一个派生类时,获取指示当前流是否支持写入的值。
公共属性Length在派生类中重写时,获取流的字节长度。
公共属性Position在派生类中重写时,获取或设置当前流的位置。
公共属性ReadTimeout获取或设置一个值(以毫秒为单位),该值确定流在超时前尝试读取多长时间。
公共属性WriteTimeout获取或设置一个值(以毫秒为单位),该值确定流在超时前尝试写入多长时间。
返回顶部

  名称说明
公共方法BeginRead开始异步读操作。
公共方法BeginWrite开始异步写操作。
公共方法Close关闭当前流并释放与当前流关联的任何资源(如套接字和文件句柄)。
公共方法CopyTo(Stream)从当前流读取所有字节并向目标流写入它们。
公共方法CopyTo(Stream, Int32)从当前流读取所有字节并使用指定缓冲区大小向目标流写入它们。
公共方法CopyToAsync(Stream)从当前流异步读取字节并向另一个流写入它们。
公共方法CopyToAsync(Stream, Int32)从当前流异步读取字节并使用指定缓冲区大小向另一个流写入它们。
公共方法CopyToAsync(Stream, Int32, CancellationToken)从当前流异步读取字节并使用指定缓冲区大小和取消标记向另一个流写入它们。
公共方法Dispose释放由 Stream 使用的所有资源。
受保护的方法Dispose(Boolean)释放 Stream 占用的非托管资源,也可以选择释放托管资源。
公共方法EndRead等待挂起的异步读取完成。
公共方法EndWrite结束异步写操作。
公共方法Equals(Object)确定指定的 Object 是否等于当前的 Object (从 Object 继承。)
受保护的方法Finalize允许 Object 在垃圾回收器回收该对象之前尝试释放资源并执行其他清理操作。 (从 Object 继承。)
公共方法Flush在派生类进行重写时,将清除该流的所有缓冲区,并使得所有缓冲数据被写入到基础设备。
公共方法FlushAsync异步清除该流的所有缓冲区,并使所有缓冲的数据都写入基础设备。
公共方法FlushAsync(CancellationToken)异步清除该流的所有缓冲区,使所有缓冲的数据都写入基础设备,并监视取消请求。
公共方法GetHashCode用作特定类型的哈希函数。 (从 Object 继承。)
公共方法GetType获取当前实例的 Type (从 Object 继承。)
受保护的方法MemberwiseClone创建当前 Object 的浅表副本。 (从 Object 继承。)
公共方法Read在派生类中重写时,从当前流读取字节序列并且将流的位置向前移动所读取的字节数。
公共方法ReadAsync(Byte(), Int32, Int32)从当前流异步读取字节序列,并将流中的位置向前移动读取的字节数。
公共方法ReadAsync(Byte(), Int32, Int32, CancellationToken)从当前流中异步读取字节序列,在该流中按照读取的字节数向前移动位置,并监视取消请求。
公共方法ReadByte从流中读取一个字节,并在流中向前移动一个字节的位置;或如果在流末尾则返回 -1。
公共方法Seek在派生类中重写时,在当前流设置位置。
公共方法SetLength在派生类中重写时,设置当前流的长度。
公共方法ToString返回一个字符串,它表示当前的对象。 (从 Object 继承。)
公共方法Write在派生类中重写时,向当前流写入字节序列并将流的当前位置向前移动写入的字节数。
公共方法WriteAsync(Byte(), Int32, Int32)将字节序列异步写入当前流,并将流的当前位置向前移动写入的字节数。
公共方法WriteAsync(Byte(), Int32, Int32, CancellationToken)将一个字节序列异步写入当前流,使流中的当前位置向前移动所写入的字节数,并监视取消请求。
公共方法WriteByte向流中的当前位置写一个字节,流中的位置向前移动一个字节。
返回顶部

  名称说明
公共扩展方法AsInputStream将 适用于 Windows 商店应用的 .NET 中的托管流转换到 Windows 运行时 中的输入流。 (由 WindowsRuntimeStreamExtensions 定义。)
公共扩展方法AsOutputStream将 适用于 Windows 商店应用的 .NET 中的托管流转换到 Windows 运行时 中的输出流。 (由 WindowsRuntimeStreamExtensions 定义。)
返回顶部

  名称说明
公共字段静态成员Null无后备存储区的 Stream
返回顶部

流涉及三个基本操作:

  1. 可以读取流。读取是从流到数据结构(如字节数组)的数据传输。

  2. 可以写入流。写入是从数据结构到流的数据传输。

  3. 流可以支持查找。查找是对流内的当前位置进行的查询和修改。查找功能取决于流具有的后备存储区类型。例如,网络流没有当前位置的统一概念,因此一般不支持查找。

Stream 是所有流的抽象基类。流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道或者 TCP/IP 套接字。Stream 类及其派生类提供这些不同类型的输入和输出的一般视图,使程序员不必了解操作系统和基础设备的具体细节。

根据基础数据源或储存库,流可能只支持这些功能中的一部分。通过使用 CanReadCanWriteCanSeek 属性,应用程序可以查询流的功能。

ReadWrite 方法读写各种不同格式的数据。对于支持查找的流,使用 SeekSetLength 方法以及 PositionLength 属性可查询和修改流的当前位置和长度。

有些流实现执行基础数据的本地缓冲以提高性能。对于这样的流,Flush 方法可用于清除所有内部缓冲区并确保将所有数据写入基础数据源或储存库。

Stream 上调用 Close 可清空任何缓存的数据,从本质上为您调用 FlushClose 还释放操作系统资源(如文件句柄、网络连接或用于任何内部缓冲的内存)。

如果需要不带后备存储区(即位存储桶)的流,请使用 Null

对实现者的说明

当实现 Steam 的派生类时,您必须为 ReadWrite 方法提供实现。异步方法 BeginReadEndReadBeginWriteEndWrite 通过同步方法 ReadWrite 实现。同样,ReadWrite 的实现也将与异步方法一起正常工作。ReadByteWriteByte 的默认实现创建一个新的单元素字节数组,然后调用 ReadWrite 的实现。当从 Stream 派生时,如果有内部字节缓冲区,则强烈建议重写这些方法以访问内部缓冲区,这样性能将得到显著提高。还必须提供 CanReadCanSeekCanWriteFlushLengthPositionSeekSetLength 的实现。

不要重写 Close 方法,而应将所有 Stream 清理逻辑放入 Dispose 方法中。

TopicLocation
如何:向文件写入文本.NET Framework:编程基础
如何:从文件读取文本.NET Framework:编程基础
如何:向文件写入文本.NET Framework:编程基础
如何:从文件读取文本.NET Framework:编程基础

Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

此类型的所有公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

显示:
© 2015 Microsoft