FileStream.Flush メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
このストリームのバッファーをクリアして、バッファー内のデータがファイルに書き込まれるようにします。
オーバーロード
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 バッファーもフラッシュされます。
こちらもご覧ください
適用対象
.NET