如何从字符串生成流? [英] How do I generate a stream from a string?

查看:64
本文介绍了如何从字符串生成流?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要为采用来自文本文件的流的方法编写单元测试。我想做这样的事情:

I need to write a unit test for a method that takes a stream which comes from a text file. I would like to do do something like this:

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


推荐答案

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:

Don't forget to use Using:

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






关于 StreamWriter 未处理。 StreamWriter 只是基本流的包装,并且不使用任何需要处理的资源。 Dispose 方法将关闭 StreamWriter 是的基础 Stream 写。在这种情况下,就是我们要返回的 MemoryStream


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.

.NET 4.5中现在存在一个重载 StreamWriter 可以在丢弃编写器之后使基础流保持打开状态,但是此代码执行相同的操作,并且也可以与其他版本的.NET一起使用。

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.

请参见是否可以在不关闭其BaseStream的情况下关闭StreamWriter?

这篇关于如何从字符串生成流?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆