ReadInt32
ReadInt32 у
BinaryReader
ожидает 4 байта. После
Write
с int 1 в потоке байты
1, 0, 0, 0.
Если байт не хватает - EndOfStreamException.
Синтаксис
int value = reader.ReadInt32();
Пример
Давайте прочитаем число после Write(1):
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
Пример
Давайте выведем байты little-endian:
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);
byte[] data = ms.ToArray();
Console.WriteLine(data[0]);
Console.WriteLine(data[1]);
Console.WriteLine(data[2]);
Console.WriteLine(data[3]);
writer.Dispose();
ms.Dispose();
}
}
Результат выполнения кода:
1
0
0
0
Пример
Давайте поймаем короткий поток:
using System;
using System.IO;
using System.Text;
class Program
{
static void Main()
{
MemoryStream ms = new MemoryStream([1, 2]);
BinaryReader reader = new BinaryReader(
ms, Encoding.UTF8, leaveOpen: true);
try
{
reader.ReadInt32();
}
catch (EndOfStreamException)
{
Console.WriteLine("fail");
}
reader.Dispose();
ms.Dispose();
}
}
Результат выполнения кода:
"fail"
Смотрите также
-
ReadInt64,
восьмибайтовое целое -
Write,
записьintв поток -
Stream,
общий поток байтов -
MemoryStream,
буфер для проверки