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

Копирование данных между потоками в C#

Метод CopyTo переносит данные из текущей позиции источника в другой поток. Отдельный цикл чтения и записи для этого не нужен.

Если курсор уже сдвинут, в приёмник попадут только байты после него. Поэтому перед копированием позицию источника возвращают в начало.

Скопируем маленький буфер. CopyTo копирует от текущей позиции до конца, и приёмник получает столько байт, сколько ещё осталось в источнике:

using System.IO; using MemoryStream source = new(); source.WriteByte(3); source.WriteByte(4); source.Position = 0; using MemoryStream target = new(); source.CopyTo(target); Console.WriteLine(target.Length); // выведет 2

Скопируйте поток в памяти с байтами 8, 1 и 6 в другой поток и выведите, сколько байт оказалось в приёмнике.

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