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