다음을 통해 공유


Stream.Close 메서드

정의

현재 스트림을 닫고 현재 스트림과 관련된 소켓과 파일 핸들 등의 리소스를 모두 해제합니다. 이 메서드를 호출하는 대신 스트림이 올바르게 삭제되었는지 확인합니다.

public:
 virtual void Close();
public virtual void Close ();
abstract member Close : unit -> unit
override this.Close : unit -> unit
Public Overridable Sub Close ()

설명

이 메서드는 를 호출 Dispose하고 를 지정하여 true 모든 리소스를 해제합니다. 메서드를 구체적으로 호출 Close 할 필요는 없습니다. 대신 모든 Stream 개체가 제대로 삭제되었는지 확인합니다. 블록(또는 Using Visual Basic의 블록) 내에서 개체를 using 선언 Stream 하여 스트림 및 모든 해당 리소스가 삭제되었는지 확인하거나 메서드를 Dispose 명시적으로 호출할 수 있습니다.

또는 Close의 구현 Flush 을 명시적으로 호출하지 않는 한 스트림을 플러시해도 기본 인코더가 플러시되지 않습니다. 로 true 설정 AutoFlush 하면 데이터가 버퍼에서 스트림으로 플러시되지만 인코더 상태는 플러시되지 않습니다. 이렇게 하면 인코더가 다음 문자 블록을 올바르게 인코딩할 수 있도록 해당 상태(부분 문자)를 유지할 수 있습니다. 이 시나리오는 인코더가 인접한 문자 또는 문자를 받은 후에만 특정 문자를 인코딩할 수 있는 UTF8 및 UTF7에 영향을 줍니다.

스트림이 닫힌 후 스트림을 조작하려고 시도하면 가 throw될 ObjectDisposedException수 있습니다.

상속자 참고

파생 클래스에서 메서드를 재정 Close() 의하지 말고 메서드에 모든 정리 논리를 StreamDispose(Boolean) 배치합니다. 자세한 내용은 Dispose 메서드 구현을 참조하세요.

적용 대상

추가 정보