Код: Выделить всё
using var reader = new StreamReader(input, leaveOpen: true);
var original = await reader.ReadToEndAsync();
var replaced = original.Replace(old, new, StringComparison.InvariantCultureIgnoreCase);
await output.WriteAsync(Encoding.UTF8.GetBytes(replaced));
Я смотрел System .IO.Pipelines и PipeReader. Хотя это дает мне эффективный доступ к потоку, он работает с байтами, что делает проблематичным преобразование в char при работе в Utf-8.
Один метод, который я видел заключается в использовании ReadLineAsync в потоке чтения, но я не знаю, будет ли поток содержать какие-либо символы новой строки.
Другой метод, который я видел, — это использование очереди, но даже это кажется неуклюжим.
Итак, мой вопрос: как лучше всего заменить текст потоком без чтения всего потока в памяти?
Подробнее здесь: https://stackoverflow.com/questions/782 ... n-a-stream
Мобильная версия