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() 或关闭,否则刷新流不会刷新其基础编码器。 设置为 AutoFlush true 表示数据将从缓冲区刷新到流,但不会刷新编码器状态。 这允许编码器保持其状态 (部分字符) ,以便它可以正确编码下一个字符块。 此方案会影响 UTF8 和 UTF7,其中某些字符只能在编码器接收相邻字符或字符后进行编码。

尝试在关闭流后操作流可能会引发 。ObjectDisposedException

适用于

另请参阅