问题描述
如题,比如当前有如下的伪代码:
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;
}
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册