如何从文件读取流并显示为文本?

时间:2011-04-20 19:46:30

标签: c# asp.net-mvc memorystream

我正在通过网络服务阅读文本文件。我正在获取byte []数据块中的数据并将其重新组装成MemoryStream。现在我想弄清楚如何在textarea中显示文本数据。关于如何做到这一点的任何建议,我被卡住了?

更新

这是最终的解决方案,它将文本文件的内容作为字符串返回,然后显示在textarea中。

    public string DownloadFile(string filenamepath)
    {
        int offset = 0;
        int chunkSize = 16000;
        string filecontents = string.Empty;

        using (var wsc = new WebServiceClient())
        {
            using (var fs = new MemoryStream())
            {
                while (true)
                {
                    var buffer = wsc.DownloadFile(filenamepath, offset, chunkSize);
                    int read = buffer.Length;
                    if (read <= 0)
                        break;

                    fs.Seek(offset, SeekOrigin.Begin);
                    fs.Write(buffer, 0, read);
                    offset += read;
                }

                using (var reader = new StreamReader(fs))
                {
                    reader.BaseStream.Seek(0, SeekOrigin.Begin);
                    filecontents = reader.ReadToEnd();
                }
            }
        }
        return filecontents;
    }

2 个答案:

答案 0 :(得分:4)

围绕StreamReaderMemoryStream并调用读者的ReadToEnd()方法。

确保相应地设置读者的编码。

答案 1 :(得分:2)

使用:

MemoryStream stream = ... //Your memory stream here

using (var reader = new StreamReader(stream))
{
    textArea.Text = reader.ReadToEnd();
}