FileStream.Flush Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bu akış için arabellekleri temizler ve arabelleğe alınan verilerin dosyaya yazılmasına neden olur.
Aşırı Yüklemeler
Flush() |
Bu akış için arabellekleri temizler ve arabelleğe alınan verilerin dosyaya yazılmasına neden olur. |
Flush(Boolean) |
Bu akış için arabellekleri temizler ve arabelleğe alınan verilerin dosyaya yazılmasına neden olur ve ayrıca tüm ara dosya arabelleklerini temizler. |
Flush()
- Kaynak:
- FileStream.cs
- Kaynak:
- FileStream.cs
- Kaynak:
- FileStream.cs
Bu akış için arabellekleri temizler ve arabelleğe alınan verilerin dosyaya yazılmasına neden olur.
public:
override void Flush();
public override void Flush ();
override this.Flush : unit -> unit
Public Overrides Sub Flush ()
Özel durumlar
G/ç hatası oluştu.
Akış kapatılır.
Örnekler
Bu kod örneği, yöntemi için Lock sağlanan daha büyük bir örneğin parçasıdır.
// 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.")
Açıklamalar
Bu yöntem geçersiz kılar Stream.Flush.
yöntemini çağırdığınızda FileStream.Flush , işletim sistemi G/Ç arabelleği de boşaltılır.
Nesneyi açıkça çağırmadığınız Flush veya atmadığınız sürece bir akışın kodlayıcısı temizlenmez. ayarı StreamWriter.AutoFlushtrue
, verilerin arabellekten akışa boşaltılacağı, ancak kodlayıcı durumunun boşaltılmayacağı anlamına gelir. Bu, kodlayıcının durumunu (kısmi karakterler) koruyabilmesini ve böylece bir sonraki karakter bloğunu doğru şekilde kodlamasını sağlar. Bu senaryo UTF8 ve UTF7'yi etkiler; burada belirli karakterler yalnızca kodlayıcı bitişik karakteri veya karakterleri aldıktan sonra kodlanabilir.
Arabellek okuma veya yazma için kullanılabildiğinden aşağıdaki Flush() iki işlevi gerçekleştirir:
Arabelleğe daha önce yazılan tüm veriler dosyaya kopyalanır ve kodlayıcı durumu dışında arabellek temizlenir.
ise
true
ve veriler daha önce okuma için dosyadan arabelleğe kopyalandıysaBufferedStream.CanSeek, dosyadaki geçerli konum arabellekteki okunmamış bayt sayısıyla azaltılır. Ardından arabellek temizlenir.
Ara dosya arabelleklerindeki Flush(Boolean) tüm arabelleğe alınan verilerin diske yazıldığından emin olmak istediğinizde yöntem aşırı yüklemesini kullanın.
Ayrıca bkz.
Şunlara uygulanır
Flush(Boolean)
- Kaynak:
- FileStream.cs
- Kaynak:
- FileStream.cs
- Kaynak:
- FileStream.cs
Bu akış için arabellekleri temizler ve arabelleğe alınan verilerin dosyaya yazılmasına neden olur ve ayrıca tüm ara dosya arabelleklerini temizler.
public:
virtual void Flush(bool flushToDisk);
public virtual void Flush (bool flushToDisk);
override this.Flush : bool -> unit
Public Overridable Sub Flush (flushToDisk As Boolean)
Parametreler
- flushToDisk
- Boolean
true
tüm ara dosya arabelleklerini temizlemek için; aksi takdirde , false
.
Açıklamalar
Ara dosya arabelleklerindeki tüm arabelleğe alınan verilerin diske yazıldığından emin olmak istediğinizde bu aşırı yüklemeyi kullanın.
yöntemini çağırdığınızda Flush , işletim sistemi G/Ç arabelleği de boşaltılır.