Flush
Flush у
BinaryWriter
вызывает Flush у нижележащего
Stream.
Для int в
MemoryStream
байты уже видны сразу после
Write;
Flush не обязателен, чтобы
увидеть их в буфере.
Синтаксис
writer.Flush();
Пример
Давайте прочитать байт до вызова Flush:
using System;
using System.IO;
using System.Text;
class Program
{
static void Main()
{
MemoryStream ms = new MemoryStream();
BinaryWriter writer = new BinaryWriter(
ms, Encoding.UTF8, leaveOpen: true);
writer.Write(1);
int res = ms.ToArray()[0];
Console.WriteLine(res);
writer.Dispose();
ms.Dispose();
}
}
Результат выполнения кода:
1
Пример
Давайте вызвать Flush и проверить длину:
using System;
using System.IO;
using System.Text;
class Program
{
static void Main()
{
MemoryStream ms = new MemoryStream();
BinaryWriter writer = new BinaryWriter(
ms, Encoding.UTF8, leaveOpen: true);
writer.Write(1);
writer.Flush();
long res = ms.Length;
Console.WriteLine(res);
writer.Dispose();
ms.Dispose();
}
}
Результат выполнения кода:
4
Пример
Давайте прочитать число после Flush:
using System;
using System.IO;
using System.Text;
class Program
{
static void Main()
{
MemoryStream ms = new MemoryStream();
BinaryWriter writer = new BinaryWriter(
ms, Encoding.UTF8, leaveOpen: true);
writer.Write(1);
writer.Flush();
ms.Position = 0;
BinaryReader reader = new BinaryReader(
ms, Encoding.UTF8, leaveOpen: true);
int res = reader.ReadInt32();
Console.WriteLine(res);
reader.Dispose();
writer.Dispose();
ms.Dispose();
}
}
Результат выполнения кода:
1
Смотрите также
-
Write,
запись перед сбросом -
ReadInt32,
чтение послеFlush -
Stream,
куда уходитFlush -
MemoryStream,
буфер в памяти