2

を使用していくつかの結果をファイルに書き込むレガシークラスがありStreamWriter、コンストラクターを受け入れるコンストラクターでFileStream作成されました。これは、以前にコンストラクターにファイルパスを与えることによって作成されました。

        using (FileStream fs = File.Open(outputFilePath, FileMode.Create))
        using (StreamWriter sw = new StreamWriter(fs))
        {
            MyFileWriter.WriteToFile(someData, sw);
        }

ちなみに、記載されているコードはWCFサービスで使用されています。
現在、ファイルをクライアント ファイル システムに保存する必要があるという新しい要件があり、byte[] のみをクライアントに送信できるという制約があります。これをサポートするために既存のコードに最小限の変更を加えたいのですが、たとえば、コンストラクターでファイルパスを指定する必要なく作成できるストリームがありますか? 後で、このストリームを に変換しますbyte[]
私はあなたが持っているかもしれない他のアイデアにもオープンです.

4

2 に答える 2

5

あなたはMemoryStreamを使うことができます、

    byte[] result;
    using (MemoryStream ms = new MemoryStream())
    using (StreamWriter sw = new StreamWriter(ms))
    {
        MyFileWriter.WriteToFile(someData, sw);
        result = ms.ToArray();
    }

    // use the result byte[]
于 2012-07-23T08:44:32.570 に答える
1

を使用しMemoryStreamます。

using (MemoryStream ms =  new MemoryStream())
{
  using (StreamWriter sw = new StreamWriter(ms))
   {
     MyFileWriter.WriteToFile(someData, sw);
   }
}
于 2012-07-23T08:42:14.703 に答える