Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
777 of 1492 menu
◀ ▶

Метод Flush

Stream.Flush заставляет поток отдать буфер: у FileStream байты уходят на диск, у MemoryStream вызов почти пустой - данные уже в памяти. После Write на файловом потоке Flush полезен до закрытия. Есть FlushAsync.

Синтаксис

stream.Flush();

Пример

Давайте вызовем Flush после записи и проверим длину:

using System; using System.IO; class Program { static void Main() { using var ms = new MemoryStream(); ms.Write([1, 2, 3, 4, 5], 0, 5); ms.Flush(); long res = ms.Length; Console.WriteLine(res); } }

Результат выполнения кода:

5

Пример

Давайте прочитаем байт после Flush:

using System; using System.IO; class Program { static void Main() { using var ms = new MemoryStream(); ms.Write([1, 2, 3, 4, 5], 0, 5); ms.Flush(); ms.Position = 0; byte[] buf = new byte[1]; ms.Read(buf, 0, 1); int res = buf[0]; Console.WriteLine(res); } }

Результат выполнения кода:

1

Пример

Давайте допишем байт, снова вызовем Flush и сравним длину:

using System; using System.IO; class Program { static void Main() { using var ms = new MemoryStream(); ms.Write([1, 2, 3, 4, 5], 0, 5); ms.Flush(); ms.Write([1], 0, 1); ms.Flush(); long res = ms.Length; Console.WriteLine(res); } }

Результат выполнения кода:

6

Смотрите также

  • метод Write,
    который кладёт байты в буфер
  • метод Dispose,
    который закрывает поток
  • метод CopyTo,
    который копирует данные дальше
  • Stream,
    класс, где объявлен Flush
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить