次の方法で共有


FileStream.Flush メソッド

定義

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

オーバーロード

Flush()

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

Flush(Boolean)

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

Flush()

ソース:
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 = 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.");
    }
| '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 すか破棄しない限り、ストリームのエンコーダーはフラッシュされません。 にtrue設定StreamWriter.AutoFlushすると、データはバッファーからストリームにフラッシュされますが、エンコーダーの状態はフラッシュされません。 これにより、エンコーダーは状態 (部分的な文字) を保持して、次の文字ブロックを正しくエンコードできるようになります。 このシナリオは UTF8 と UTF7 に影響を与え、エンコーダーが隣接する文字を受信した後にのみ特定の文字をエンコードできます。

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

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

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

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

こちらもご覧ください

適用対象

Flush(Boolean)

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

こちらもご覧ください

適用対象