文字列からストリームを生成するにはどうすればいいですか? 質問する

文字列からストリームを生成するにはどうすればいいですか? 質問する

テキスト ファイルから取得したストリームを受け取るメソッドの単体テストを作成する必要があります。次のようなことを実行したいと思います。

Stream s = GenerateStreamFromString("a,b \n c,d");

ベストアンサー1

public static Stream GenerateStreamFromString(string s)
{
    var stream = new MemoryStream();
    var writer = new StreamWriter(stream);
    writer.Write(s);
    writer.Flush();
    stream.Position = 0;
    return stream;
}

忘れずに使用してください:

using (var stream = GenerateStreamFromString("a,b \n c,d"))
{
    // ... Do stuff to stream
}

StreamWriter破棄されないことについて。StreamWriterはベース ストリームのラッパーにすぎず、破棄する必要のあるリソースは使用しません。メソッドは、書き込み先のDispose基礎となる を閉じます。 この場合、返したいのは です。StreamStreamWriterMemoryStream

.NET 4.5 では、ライターが破棄された後も基になるストリームを開いたままにするオーバーロードが導入されましたStreamWriterが、このコードは同じことを実行し、他のバージョンの .NET でも動作します。

見るBaseStream を閉じずに StreamWriter を閉じる方法はありますか?

おすすめ記事