2

System.IO.StreamReader にラップされた入力ストリームがあります... ストリームの内容をファイル (つまり、StreamWriter) に書き込みたいと考えています。

入力ストリームの長さは不明です。長さは数バイトから数ギガバイトになる可能性があります。

メモリをあまり消費しない最も簡単な方法を教えてください。

4

1 に答える 1

10

このようなもの:

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);
    }
}

これは、あるストリームの内容を別のストリームにコピーするために記述する内容と非常に似ていることに注意してください。これは、たまたまバイナリ データではなくテキスト データになっているだけです。

于 2009-10-05T18:47:26.987 に答える