StreamReader в файл? - PullRequest
       17

StreamReader в файл?

2 голосов
/ 05 октября 2009

У меня есть входной поток, обернутый в System.IO.StreamReader ... Я хочу записать содержимое потока в файл (т.е. StreamWriter).

Длина входного потока неизвестна. Может быть длиной от нескольких байтов до гигабайт.

Как это сделать проще всего, не занимая слишком много памяти?

1 Ответ

10 голосов
/ 05 октября 2009

Примерно так:

public static void CopyText(TextReader input, TextWriter output)
{
    char[] buffer = new char[8192];
    int length;
    while ((length = input.Read(buffer, 0, buffer.Length)) > 0)
    {
        output.Write(buffer, 0, length);
    }
}

Обратите внимание, что это очень похоже на то, что вы пишете для копирования содержимого одного потока в другой - это просто текстовые данные вместо двоичных данных.

...