Aracılığıyla paylaş


FileStream.Flush Yöntem

Tanım

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.

Ayrıca bkz.

Şunlara uygulanır