Поделиться через


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();

Комментарии

Все данные, ранее записанные в буфер, копируются в базовый источник данных или репозиторий перед закрытием буферизованного потока. Поэтому нет необходимости вызывать Flush() перед вызовом Close. После вызова Close любые операции в буферизованном потоке могут вызывать исключения.

Очистка потока не будет очищать его базовый кодировщик, если вы явно не вызовете Flush() или Close. Значение AutoFlush true означает, что данные будут сброшены из буфера в поток, но состояние кодировщика не будет удалено. Это позволяет кодировщику сохранять свое состояние (частичные символы), чтобы правильно кодировать следующий блок символов. Этот сценарий влияет на UTF8 и UTF7, где определенные символы можно закодировать только после того, как кодировщик получит смежные символы или символы.

Попытка управлять потоком после его закрытия может вызвать исключение ObjectDisposedException.

Применяется к

См. также раздел