Как читать из файла в поток и отображать как текст? - PullRequest
3 голосов
/ 20 апреля 2011

Я читаю текстовый файл через веб-сервис.Я получаю данные в виде кусков данных byte [] и собираю их в MemoryStream.Сейчас я пытаюсь выяснить, как отображать текстовые данные в текстовой области.Любые рекомендации о том, как это сделать, я застрял?

Обновление

Вот окончательное решение, которое возвращает содержимое текстового файла в виде строки, котораязатем отображается в текстовой области.

    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 ]

4 голосов
/ 20 апреля 2011

Оберните StreamReader вокруг этого MemoryStream и вызовите метод считывателя ReadToEnd().

Убедитесь, что установили кодировку считывателя соответствующим образом.

2 голосов
/ 20 апреля 2011

Использование:

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

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