号外号外: 原[图享网]更名为 码友网(codedefault.com) 啦,感谢大家一路上的陪伴与支持。代码的世界里,码友网与大家一起同行!

[.NET/C#]C#程序开发中如何将一个字符串转换成数据流?

.NET 作者: Rector 69阅读 0评论 0收藏 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

问题描述

如题,比如当前有如下的伪代码:

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;
}

阅读了该文章的人还浏览了...

本文永久链接码友网 » [.NET/C#]C#程序开发中如何将一个字符串转换成数据流?

发布于: 2018-01-29 16:57:13
分享扩散:

文章评论

获取验证码