FileStream.Flush メソッド

定義

このストリームのバッファーをクリアし、バッファー内のデータをファイルに書き込みます。

オーバーロード

名前 説明
Flush()

このストリームのバッファーをクリアし、バッファー内のデータをファイルに書き込みます。

Flush(Boolean)

このストリームのバッファーをクリアし、バッファー内のデータをファイルに書き込み、すべての中間ファイル バッファーもクリアします。

Flush()

ソース:
FileStream.cs
ソース:
FileStream.cs
ソース:
FileStream.cs
ソース:
FileStream.cs
ソース:
FileStream.cs

このストリームのバッファーをクリアし、バッファー内のデータをファイルに書き込みます。

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 = 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.");
    }
| 'W' ->
    // Update the file.
    try

        fileStream.Seek(textLength, SeekOrigin.Begin) |> ignore
        fileStream.Read(readText, textLength - 1, byteCount) |> ignore
        tempString <- String(uniEncoding.GetChars readText, textLength - 1, byteCount)
        recordNumber <- Int32.Parse tempString + 1
        fileStream.Seek(textLength, SeekOrigin.Begin) |> ignore
        fileStream.Write(string recordNumber |> uniEncoding.GetBytes, 0, byteCount)
        fileStream.Flush()
        printfn "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 を呼び出すか、オブジェクトを破棄しない限り、ストリームのエンコーダーはフラッシュされません。 StreamWriter.AutoFlushtrue に設定すると、データはバッファーからストリームにフラッシュされますが、エンコーダーの状態はフラッシュされません。 これにより、エンコーダーは状態 (部分的な文字) を保持して、次の文字ブロックを正しくエンコードできます。 このシナリオは UTF8 と UTF7 に影響を与え、エンコーダーが隣接する文字を受信した後でのみ特定の文字をエンコードできます。

バッファーは読み取りまたは書き込みに使用できるため、 Flush() は次の 2 つの関数を実行します。

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

  • BufferedStream.CanSeektrueされ、データが読み取り用にファイルからバッファーにコピーされた場合、ファイル内の現在の位置はバッファー内の未読バイト数だけ減少します。 その後、バッファーがクリアされます。

中間ファイル バッファー内のすべてのバッファー内のデータがディスクに書き込まれるようにする場合は、 Flush(Boolean) メソッドのオーバーロードを使用します。

こちらもご覧ください

適用対象

Flush(Boolean)

ソース:
FileStream.cs
ソース:
FileStream.cs
ソース:
FileStream.cs
ソース:
FileStream.cs
ソース:
FileStream.cs

このストリームのバッファーをクリアし、バッファー内のデータをファイルに書き込み、すべての中間ファイル バッファーもクリアします。

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

こちらもご覧ください

適用対象