Stream 类

提供字节序列的一般视图。

**命名空间:**System.IO
**程序集:**mscorlib(在 mscorlib.dll 中)

语法

声明
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public MustInherit Class Stream
    Inherits MarshalByRefObject
    Implements IDisposable
用法
Dim instance As Stream
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public abstract class Stream : MarshalByRefObject, IDisposable
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class Stream abstract : public MarshalByRefObject, IDisposable
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public abstract class Stream extends MarshalByRefObject implements IDisposable
SerializableAttribute 
ComVisibleAttribute(true) 
public abstract class Stream extends MarshalByRefObject implements IDisposable

备注

有关创建文件和向文件中写入文本的示例,请参见 如何:向文件写入文本。有关从文件中读取文本的示例,请参见 如何:从文件读取文本。有关读取和写入二进制文件的示例,请参见 如何:对新建的数据文件进行读取和写入

流涉及三个基本操作:

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

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

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

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

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

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

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

Stream 上调用 Close 将刷新所有经过缓冲处理的数据,本质上是为您调用了 FlushClose 也会释放操作系统资源,如文件句柄、网络连接或用于任何内部缓冲的内存。BufferedStream 类提供了将一个经过缓冲的流环绕另一个流的功能,以便提高读写性能。

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

给实现者的说明 在实现 Stream 的派生类时,必须提供 ReadWrite 方法的实现。异步方法 BeginReadEndReadBeginWriteEndWrite 通过同步方法 ReadWrite 实现。同样,ReadWrite 的实现也将与异步方法一起正常工作。ReadByteWriteByte 的默认实现创建一个新的单元素字节数组,然后调用 ReadWrite 的实现。当从 Stream 派生时,如果有内部字节缓冲区,则强烈建议重写这些方法以访问内部缓冲区,这样性能将得到显著提高。还必须提供 CanReadCanSeekCanWriteFlushLengthPositionSeekSetLength 的实现。 不要重写 Close 方法,而应将所有流清理逻辑放入 Dispose 方法中。有关更多信息,请参见 实现 Dispose 方法

主题 位置
如何:向文件写入文本 .NET Framework:编程基础
如何:从文件读取文本 .NET Framework:编程基础
如何:向文件写入文本 .NET Framework:编程基础
如何:从文件读取文本 .NET Framework:编程基础

继承层次结构

System.Object
   System.MarshalByRefObject
    System.IO.Stream
       派生类

线程安全

此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

Stream 成员
System.IO 命名空间
FileStream 类
MemoryStream 类
BufferedStream 类

其他资源

文件和流 I/O
如何:从文件读取文本
如何:向文件写入文本