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() 次の 2 つの関数を実行します。

  • バッファーに書き込まれたデータはすべてファイルにコピーされ、バッファーはエンコーダーの状態を除いてクリアされます。

  • データが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 バッファーもフラッシュされます。

こちらもご覧ください

適用対象