FileStream.Flush Метод

Определение

Очищает буферы для этого потока и приводит к записи в файл любых буферных данных.

Перегрузки

Имя Описание
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 ()

Исключения

Произошла ошибка ввода-вывода.

Поток закрыт.

Примеры

Этот пример кода является частью более крупного примера, предоставленного 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 системы также очищается.

Кодировщик потока не удаляется, если вы не вызываете Flush или не удаляете объект явным образом. StreamWriter.AutoFlush Значение параметра true означает, что данные будут удалены из буфера в поток, но состояние кодировщика не будет удалено. Это позволяет кодировщику сохранять состояние (частичные символы), чтобы кодировать следующий блок символов правильно. Этот сценарий влияет на UTF8 и UTF7, где некоторые символы могут быть закодированы только после того, как кодировщик получает смежные символы или символы.

Так как буфер можно использовать для чтения или записи, Flush() выполняет следующие две функции:

  • Все данные, записанные в буфер, копируются в файл, и буфер очищается, за исключением состояния кодировщика.

  • 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 системы также очищается.

См. также раздел

Применяется к