now*_*ed. 5 .net c# .net-4.0 filestream visual-studio-2010
刚刚开始编写单元测试,现在我已经被这种情况阻止了:
我有一个方法,它有一个FileStream对象,我试图传递一个"字符串".所以,我想将我的字符串转换为FileStream,我这样做:
File.WriteAllText(string.Concat(Environment.ExpandEnvironmentVariables("%temp%"),
@"/test.txt"), testFileContent); //writes my string to a temp file!
new FileStream(string.Concat(Environment.ExpandEnvironmentVariables("%temp%"),
@"/test.txt"), FileMode.Open) //open that temp file and uses it as a fileStream!
Run Code Online (Sandbox Code Playgroud)
然后关闭文件!
但是,我想必须有一些非常简单的替代方法将字符串转换为fileStream.
欢迎提出建议![注意在stackoverflow中有这个问题的其他答案,但似乎没有一个直接的解决方案]
提前致谢!
Pio*_*app 12
首先改变你的方法,Stream
而不是FileStream
.FileStream
是一个实现,我记得,它不添加任何方法或属性,只需实现抽象类Stream
.然后使用下面的代码,您可以转换string
为Stream
:
public Stream GenerateStreamFromString(string s)
{
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream);
writer.Write(s);
writer.Flush();
stream.Position = 0;
return stream;
}
Run Code Online (Sandbox Code Playgroud)