BufferedStream.Close 方法

定义

关闭流并释放与当前缓冲流关联的所有资源(尤其是系统资源,如套接字和文件句柄)。

public:
 override void Close();
public override void Close ();
override this.Close : unit -> unit
Public Overrides Sub Close ()

例外

尝试关闭流时出错。

示例

此代码示例是为 BufferedStream 类提供的一个更大示例的一部分。

' When bufStream is closed, netStream is in turn 
' closed, which in turn shuts down the connection 
' and closes clientSocket.
Console.WriteLine(vbCrLf & "Shutting down the connection.")
bufStream.Close()
// When bufStream is closed, netStream is in turn
// closed, which in turn shuts down the connection
// and closes clientSocket.
Console.WriteLine("\nShutting down the connection.");
bufStream.Close();
// When bufStream is closed, netStream is in turn closed,
// which in turn shuts down the connection and closes
// clientSocket.
Console::WriteLine( "\nShutting down connection." );
bufStream->Close();

注解

以前写入缓冲区的任何数据在缓冲流关闭之前复制到基础数据源或存储库。 因此,无需在调用 Close 之前调用 Flush() 。 调用 Close 后,缓冲流上的任何操作都可能会引发异常。

除非显式调用 Flush() 或 Close,否则刷新流不会刷新其基础编码器。 设置为 AutoFlush true 意味着数据将从缓冲区刷新到流,但编码器状态不会刷新。 这允许编码器将其状态保留 (部分字符) ,以便可以正确编码下一个字符块。 此方案会影响 UTF8 和 UTF7,其中某些字符只能在编码器收到相邻字符后进行编码。

尝试在关闭流后对其进行操作可能会引发 ObjectDisposedException

适用于

另请参阅