问题描述
如题,比如当前有如下的伪代码:
Stream s = GenerateStreamFromString("a,b \n c,d");
在C#程序开发中如何将一个字符串转换成数据流?
方案一
使用MemoryStream:
public static Stream GenerateStreamFromString(string s)
{
    MemoryStream stream = new MemoryStream();
    StreamWriter writer = new StreamWriter(stream);
    writer.Write(s);
    writer.Flush();
    stream.Position = 0;
    return stream;
}
在调用的时候,为了自动释放资源,请使用using语句块,如:
using (Stream s = GenerateStreamFromString("a,b \n c,d"))
{
    // ... 处理你的逻辑
}
方案二
public static MemoryStream GenerateStreamFromString(string value)
{
    return new MemoryStream(Encoding.UTF8.GetBytes(value ?? ""));
}
方案三
创建一个静态扩展方法,如下:
public static Stream ToStream(this string str)
{
    MemoryStream stream = new MemoryStream();
    StreamWriter writer = new StreamWriter(stream);
    writer.Write(str);
    writer.Flush();
    stream.Position = 0;
    return stream;
}
调用方法:
using (var stringStream = "My string".ToStream())
{
    // 使用数据流进行逻辑处理
}
方案四
private Stream GenerateStreamFromString(String p)
{
    Byte[] bytes = UTF8Encoding.GetBytes(p);
    MemoryStream strm = new MemoryStream();
    strm.Write(bytes, 0, bytes.Length);
    return strm;
}
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
 
            
发表评论
登录用户才能发表评论, 请 登 录 或者 注册