FileStream.Flush メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
このストリームのバッファーをクリアし、バッファー内のデータをファイルに書き込みます。
オーバーロード
| 名前 | 説明 |
|---|---|
| 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.AutoFlushを true に設定すると、データはバッファーからストリームにフラッシュされますが、エンコーダーの状態はフラッシュされません。 これにより、エンコーダーは状態 (部分的な文字) を保持して、次の文字ブロックを正しくエンコードできます。 このシナリオは UTF8 と UTF7 に影響を与え、エンコーダーが隣接する文字を受信した後でのみ特定の文字をエンコードできます。
バッファーは読み取りまたは書き込みに使用できるため、 Flush() は次の 2 つの関数を実行します。
以前にバッファーに書き込まれたデータはすべてファイルにコピーされ、バッファーはエンコーダーの状態を除いてクリアされます。
BufferedStream.CanSeekが
trueされ、データが読み取り用にファイルからバッファーにコピーされた場合、ファイル内の現在の位置はバッファー内の未読バイト数だけ減少します。 その後、バッファーがクリアされます。
中間ファイル バッファー内のすべてのバッファー内のデータがディスクに書き込まれるようにする場合は、 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 バッファーもフラッシュされます。