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

Смещение позиции в потоке в C#

Свойство Position указывает, откуда следующий Read или Write возьмёт данные. Seek смещает эту точку относительно Begin, Current или End, если поток поддерживает CanSeek (MemoryStream и FileStream - да, сетевые потоки часто нет).

Так возвращаются к уже записанному байту и читают его, не копируя весь буфер.

Запишем два байта и прочитаем второй, сдвинув позицию на индекс 1. Чтение вернёт 2. Вызов Seek(0, Begin) вернул бы курсор к первому байту со значением 1:

using System.IO; using MemoryStream stream = new(); stream.WriteByte(1); stream.WriteByte(2); stream.Seek(1, SeekOrigin.Begin); Console.WriteLine(stream.ReadByte()); // выведет 2

Запишите в поток в памяти байты 7, 8 и 9, перейдите к третьему байту и выведите его значение.

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