首页 / .NET / 正文

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

2997 发布于: 2018-01-29 读完约需4分钟

问题描述

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

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#程序开发中如何将一个unix时间戳和日期时间进行相互转换?

下一篇: [.NET/C#]C#程序开发中如何将字符串编码成base64或者从base64编码中解码?

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

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册