如何从一个字符串流? [英] how to generate a stream from a string?
问题描述
我需要写这需要它来自一个txt文件流的方法的单元测试,我想去做做这样的事情:
流S = GenerateStreamFromString(A,B \\ n C,D);
公共流GenerateStreamFromString(字符串s)
{
MemoryStream的流=新的MemoryStream();
StreamWriter的作家=新的StreamWriter(流);
writer.Write(多个);
writer.Flush();
stream.Position = 0;
返回流;
}
不要忘了用用:
使用(流S = GenerateStreamFromString(A,B \\ n C,D))
{
// ...做的东西流
}
关于的StreamWriter
没有被处理。 的StreamWriter
仅仅是基本流周围的包装,并且不使用需要被设置的任何资源。在的Dispose
方法将关闭底层流
的的StreamWriter
是写。在这种情况下,它是的MemoryStream
我们想回来。
在.NET 4.5有现在的StreamWriter
过载,保持作家被处置后,开放底层的流,但这code做同样的事情与.NET的其他版本太的作品。
请参阅Is有什么办法可以关闭的StreamWriter而不关闭它BaseStream?
I need to write a unit test for a method that takes a stream which comes from a txt file, I would like to do do something like this:
Stream s = GenerateStreamFromString("a,b \n c,d");
public Stream GenerateStreamFromString(string s)
{
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream);
writer.Write(s);
writer.Flush();
stream.Position = 0;
return stream;
}
Don't forget to use Using:
using (Stream s = GenerateStreamFromString("a,b \n c,d"))
{
// ... Do stuff to stream
}
About the StreamWriter
not being disposed. StreamWriter
is just a wrapper around the base stream, and doesn't use any resources that need to be disposed. The Dispose
method will close the underlying Stream
that StreamWriter
is writing to. In this case that is the MemoryStream
we want to return.
In .NET 4.5 there is now an overload for StreamWriter
that keeps the underlying stream open after the writer is disposed of, but this code does the same thing and works with other versions of .NET too.
See Is there any way to close a StreamWriter without closing it's BaseStream?
这篇关于如何从一个字符串流?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!