FileStream.Flush 메서드

정의

이 스트림의 버퍼를 지우고 버퍼링된 모든 데이터가 파일에 쓰여지도록 합니다.

오버로드

Flush()

이 스트림의 버퍼를 지우고 버퍼링된 모든 데이터가 파일에 쓰여지도록 합니다.

Flush(Boolean)

이 스트림에 대한 버퍼를 지우고 버퍼링된 모든 데이터가 파일에 쓰여지도록 하며 모든 중간 파일 버퍼도 지웁니다.

Flush()

이 스트림의 버퍼를 지우고 버퍼링된 모든 데이터가 파일에 쓰여지도록 합니다.

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

예외

I/O 오류가 발생했습니다.

스트림이 닫혔습니다.

예제

이 코드 예제는에 대해 제공 된 큰 예제의 일부는 Lock 메서드.

// Update the file.
case 'W':
   try
   {
      fileStream->Seek( textLength, SeekOrigin::Begin );
      fileStream->Read( readText, textLength - 1, byteCount );
      tempString = gcnew String( uniEncoding->GetChars( readText, textLength - 1, byteCount ) );
      recordNumber = Int32::Parse( tempString ) + 1;
      fileStream->Seek( textLength, SeekOrigin::Begin );
      fileStream->Write( uniEncoding->GetBytes( recordNumber.ToString() ), 0, byteCount );
      fileStream->Flush();
      Console::WriteLine( "Record has been updated." );
   }
// Update the file.
case 'W':
    try
    {
        fileStream.Seek(textLength,
            SeekOrigin.Begin);
        fileStream.Read(
            readText, textLength - 1, byteCount);
        tempString = new String(
            uniEncoding.GetChars(
            readText, textLength - 1, byteCount));
        recordNumber = int.Parse(tempString) + 1;
        fileStream.Seek(
            textLength, SeekOrigin.Begin);
        fileStream.Write(uniEncoding.GetBytes(
            recordNumber.ToString()),
            0, byteCount);
        fileStream.Flush();
        Console.WriteLine(
            "Record has been updated.");
    }
' Update the file.
Case "W"C
    Try
        aFileStream.Seek(textLength, _
            SeekOrigin.Begin)
        aFileStream.Read( _
            readText, textLength - 1, byteCount)
        tempString = New String( _
            uniEncoding.GetChars( _
            readText, textLength - 1, byteCount))
        recordNumber = _
            Integer.Parse(tempString) + 1
        aFileStream.Seek( _
            textLength, SeekOrigin.Begin)
        aFileStream.Write(uniEncoding.GetBytes( _
            recordNumber.ToString()), 0, byteCount)
        aFileStream.Flush()
        Console.WriteLine( _
            "Record has been updated.")

설명

이 메서드는 Stream.Flush를 재정의합니다.

메서드를 FileStream.Flush 호출하면 운영 체제 I/O 버퍼도 플러시됩니다.

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

버퍼를 읽기 또는 쓰기 Flush() 에 사용할 수 있으므로 다음 두 함수를 수행합니다.

  • 이전에 버퍼에 기록된 모든 데이터는 파일에 복사되고 버퍼는 인코더 상태를 제외하고 지워집니다.

  • 데이터가 true 파일에서 읽기용 버퍼로 이전에 복사된 경우 BufferedStream.CanSeek 파일 내의 현재 위치는 버퍼의 읽지 않은 바이트 수만큼 감소합니다. 그런 다음 버퍼가 지워집니다.

중간 파일 버퍼의 Flush(Boolean) 버퍼링된 모든 데이터가 디스크에 기록되도록 하려면 메서드 오버로드를 사용합니다.

추가 정보

적용 대상

Flush(Boolean)

이 스트림에 대한 버퍼를 지우고 버퍼링된 모든 데이터가 파일에 쓰여지도록 하며 모든 중간 파일 버퍼도 지웁니다.

public:
 virtual void Flush(bool flushToDisk);
public virtual void Flush (bool flushToDisk);
override this.Flush : bool -> unit
Public Overridable Sub Flush (flushToDisk As Boolean)

매개 변수

flushToDisk
Boolean

모든 중간 파일 버퍼를 플러시하려면 true이고, 플러시하지 않으려면 false입니다.

설명

중간 파일 버퍼의 버퍼링된 모든 데이터가 디스크에 기록되도록 하려면 이 오버로드를 사용합니다.

메서드를 Flush 호출하면 운영 체제 I/O 버퍼도 플러시됩니다.

추가 정보

적용 대상