FileStream.Flush Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Очищает буферы для этого потока и вызывает запись всех буферизованных данных в файл.
Перегрузки
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 ()
Исключения
Ошибка ввода/вывода.
Поток закрыт.
Примеры
Этот пример кода является частью более крупного примера, предоставленного 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 метода буфер ввода-вывода операционной системы также очищается.
Кодировщик потока не сбрасывается, если вы явно не вызовете Flush или не удалите объект . Если задано значение StreamWriter.AutoFlush , true
данные будут сбрасываться из буфера в поток, но состояние кодировщика не будет удалено. Это позволяет кодировщику сохранять свое состояние (частичные символы), чтобы правильно кодировать следующий блок символов. Этот сценарий влияет на UTF8 и UTF7, где определенные символы можно закодировать только после того, как кодировщик получит смежные символы или символы.
Так как буфер можно использовать для чтения или записи, Flush() выполняет следующие две функции:
Все ранее записанные в буфер данные копируются в файл, и буфер очищается, за исключением состояния кодировщика.
Если BufferedStream.CanSeek значение равно
true
и данные ранее были скопированы из файла в буфер для чтения, текущая позиция в файле уменьшается на количество непрочитанных байтов в буфере. Затем буфер очищается.
Используйте перегрузку 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 метода буфер ввода-вывода операционной системы также очищается.