BinaryReader
BinaryReader оборачивает
MemoryStream
или другой
Stream
и читает int через
ReadInt32,
строки через
ReadString
и байты через
ReadBytes.
Перед чтением сбрасывают Position
после записи
BinaryWriter.
Синтаксис
BinaryReader reader = new BinaryReader(
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
Пример
Давайте прочитаем строку "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"
Пример
Давайте прочитаем bool:
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);
ms.Position = 0;
BinaryReader reader = new BinaryReader(
ms, Encoding.UTF8, leaveOpen: true);
bool res = reader.ReadBoolean();
Console.WriteLine(res);
reader.Dispose();
writer.Dispose();
ms.Dispose();
}
}
Результат выполнения кода:
True
Смотрите также
-
BinaryWriter,
запись в тот же формат -
BaseStream,
исходный поток чтения -
Stream,
базовый класс потока -
MemoryStream,
поток в памяти для примеров