我拥有Stream
类型
public System.IO.Stream UploadStream { get; set; }
如何将其转换为string
并发送到我可以再次将其转换为System.IO.Stream
的其他方面?
答案 0 :(得分:64)
我不知道将流转换为字符串是什么意思。还有什么是的另一面?
要将流转换为字符串,您需要使用编码。如果我们假设流表示UTF-8编码的字节,那么这是一个如何做到这一点的例子:
using (var reader = new StreamReader(foo.UploadStream, Encoding.UTF8))
{
string value = reader.ReadToEnd();
// Do something with the value
}
答案 1 :(得分:0)
经过一些搜索后,对该问题的其他答案表明您可以在不知道/使用字符串编码的情况下执行此操作。由于流只是字节,因此这些解决方案最多是受限制的。此解决方案考虑了编码:
public static String ToEncodedString(this Stream stream, Encoding enc = null)
{
enc = enc ?? Encoding.UTF8;
byte[] bytes = new byte[stream.Length];
stream.Position = 0;
stream.Read(bytes, 0, (int)stream.Length);
string data = enc.GetString(bytes);
return enc.GetString(bytes);
}
源-http://www.dotnetfunda.com/codes/show/130/how-to-convert-stream-into-string