ReadBoolean
ReadBoolean у
BinaryReader
читает 1 байт. После
Write(true)
в потоке байт 1, после
Write(false) - 0.
Если байта нет - EndOfStreamException.
Синтаксис
bool value = reader.ReadBoolean();
Пример
Давайте прочитаем true после записи:
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
Пример
Давайте прочитаем false и проверим байт:
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(false);
ms.Position = 0;
BinaryReader reader = new BinaryReader(
ms, Encoding.UTF8, leaveOpen: true);
bool res = reader.ReadBoolean();
ms.Position = 0;
Console.WriteLine(res);
Console.WriteLine(ms.ReadByte());
reader.Dispose();
writer.Dispose();
ms.Dispose();
}
}
Результат выполнения кода:
False
0
Пример
Давайте поймаем пустой поток:
using System;
using System.IO;
using System.Text;
class Program
{
static void Main()
{
MemoryStream ms = new MemoryStream();
BinaryReader reader = new BinaryReader(
ms, Encoding.UTF8, leaveOpen: true);
try
{
reader.ReadBoolean();
}
catch (EndOfStreamException)
{
Console.WriteLine("fail");
}
reader.Dispose();
ms.Dispose();
}
}
Результат выполнения кода:
"fail"
Смотрите также
-
Write,
записьboolодним байтом -
ReadInt32,
чтение целого из потока -
Stream,
общий поток байтов -
MemoryStream,
буфер для проверки