Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
823 of 1492 menu
◀ ▶

Seek

Seek у BinaryWriter вызывает Seek у BaseStream. После двух int вызов Seek(0, SeekOrigin.Begin) позволяет перезаписать первое число; второе остаётся на месте. Перед чтением снова ставят Position = 0.

Синтаксис

long pos = writer.Seek(offset, SeekOrigin.Begin);

Пример

Давайте перезаписать первый 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); writer.Write(2); writer.Seek(0, SeekOrigin.Begin); writer.Write(10); ms.Position = 0; BinaryReader reader = new BinaryReader( ms, Encoding.UTF8, leaveOpen: true); int first = reader.ReadInt32(); int second = reader.ReadInt32(); Console.WriteLine(first); Console.WriteLine(second); reader.Dispose(); writer.Dispose(); ms.Dispose(); } }

Результат выполнения кода:

10 2

Пример

Давайте вернуть позицию после Seek:

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); writer.Write(2); long res = writer.Seek(0, SeekOrigin.Begin); Console.WriteLine(res); writer.Dispose(); ms.Dispose(); } }

Результат выполнения кода:

0

Пример

Давайте дописать после возврата в начало:

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); writer.Seek(0, SeekOrigin.Begin); writer.Write(10); 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(); } }

Результат выполнения кода:

10

Смотрите также

  • Write,
    запись перед Seek
  • ReadInt32,
    проверка после перезаписи
  • Stream,
    общий поток байтов
  • MemoryStream,
    буфер для проверки
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить