如何将System.IO.Stream转换为字符串,然后再转换回System.IO.Stream

时间:2010-11-30 17:02:45

标签: .net silverlight-4.0 iostream

我拥有Stream类型

的属性
public System.IO.Stream UploadStream { get; set; }

如何将其转换为string并发送到我可以再次将其转换为System.IO.Stream的其他方面?

2 个答案:

答案 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

要串流的字符串-https://stackoverflow.com/a/35173245/183174