在c#中将字符串转换为文件流

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.然后使用下面的代码,您可以转换stringStream:

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)