BinaryWriter
BinaryWriter оборачивает
MemoryStream
или другой
Stream.
Числа пишут через
Write,
позицию меняют через
Seek.
Читают обратно
BinaryReader
после ms.Position = 0.
Синтаксис
BinaryWriter writer = new BinaryWriter(
stream, Encoding.UTF8, leaveOpen: true);
Пример
Давайте записать int и прочитать его:
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);
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
Пример
Давайте записать bool и double:
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(true);
writer.Write(1.5);
ms.Position = 0;
BinaryReader reader = new BinaryReader(
ms, Encoding.UTF8, leaveOpen: true);
bool flag = reader.ReadBoolean();
double num = reader.ReadDouble();
Console.WriteLine(flag);
Console.WriteLine(num == 1.5);
reader.Dispose();
writer.Dispose();
ms.Dispose();
}
}
Результат выполнения кода:
True
True
Пример
Давайте записать строку "abcde":
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("abcde");
ms.Position = 0;
BinaryReader reader = new BinaryReader(
ms, Encoding.UTF8, leaveOpen: true);
string res = reader.ReadString();
Console.WriteLine(res);
reader.Dispose();
writer.Dispose();
ms.Dispose();
}
}
Результат выполнения кода:
"abcde"
Смотрите также
-
Write,
перегрузки записи -
BinaryReader,
чтение из того же потока -
Stream,
общий поток байтов -
MemoryStream,
буфер для проверки