在 C# 中从字符串创建流
本指南演示了如何在 C# 中从字符串高效创建流对象。 当单元测试需要流作为输入的函数时,这种技术特别有价值,模仿从文本文件中读取的行为。
解决方案:
以下 C# 代码片段提供了将字符串转换为流的函数:
<code class="language-csharp">public static Stream StringToStream(string inputString) { MemoryStream stream = new MemoryStream(); StreamWriter writer = new StreamWriter(stream); writer.Write(inputString); writer.Flush(); stream.Position = 0; return stream; }</code>
使用方法:
这个StringToStream
函数可以像这样集成到您的代码中:
<code class="language-csharp">using (Stream myStream = StringToStream("a,b \n c,d")) { // Process the stream here... }</code>
关于 StreamWriter 处置的重要说明:
StreamWriter
未在函数内显式配置。 这是故意的。 StreamWriter
充当包装器;处理它会过早关闭底层的 MemoryStream
,我们需要返回它。
.NET 4.5 及更高版本:
虽然 .NET 4.5 及更高版本提供 StreamWriter
重载,使底层流在处理后保持打开状态,但提供的代码仍然与所有 .NET 框架兼容。 这确保了更广泛的适用性。
以上是如何在 C# 中从字符串创建流?的详细内容。更多信息请关注PHP中文网其他相关文章!