BufferedStream.Close 메서드

정의

스트림을 닫고 현재 버퍼링된 스트림과 연결된 모든 리소스(특히 소켓 및 파일 핸들과 같은 시스템 리소스)를 해제합니다.

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

예외

스트림을 닫는 동안 오류가 발생했습니다.

설명

버퍼에 이전에 기록된 모든 데이터는 버퍼링된 스트림을 닫기 전에 기본 데이터 원본 또는 리포지토리에 복사됩니다. 따라서 Close를 호출하기 전에 호출 Flush() 할 필요가 없습니다. Close를 호출한 후 버퍼링된 스트림에 대한 모든 작업에서 예외가 발생할 수 있습니다.

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

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

적용 대상

추가 정보