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

Метод Seek

Stream.Seek(offset, origin) возвращает новую позицию в байтах. Точку отсчёта задаёт SeekOrigin. Работает, если CanSeek равен true. Альтернатива - свойство Position.

Синтаксис

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

Пример

Давайте встанем на начало и прочитаем байт 4:

using System; using System.IO; class Program { static void Main() { using var ms = new MemoryStream(); ms.Write([1, 2, 3, 4, 5], 0, 5); ms.Seek(3, SeekOrigin.Begin); byte[] buf = new byte[1]; ms.Read(buf, 0, 1); int res = buf[0]; Console.WriteLine(res); } }

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

4

Пример

Давайте проверим возвращаемое значение Seek:

using System; using System.IO; class Program { static void Main() { using var ms = new MemoryStream(); ms.Write([1, 2, 3, 4, 5], 0, 5); long res = ms.Seek(0, SeekOrigin.Begin); Console.WriteLine(res); } }

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

0

Пример

Давайте перейдём к последнему байту через SeekOrigin.End:

using System; using System.IO; class Program { static void Main() { using var ms = new MemoryStream(); ms.Write([1, 2, 3, 4, 5], 0, 5); long res = ms.Seek(-1, SeekOrigin.End); Console.WriteLine(res); } }

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

4

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

  • SeekOrigin,
    перечисление точек отсчёта
  • свойство Position,
    которое хранит текущую позицию
  • метод Read,
    который читает с текущей позиции
  • Stream,
    класс, где объявлен Seek
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить