C# GZipStream для строкового представления

Я нуждаюсь в способе записать GZipStream в строку.

Я использую:

GZipStream Decompress = new GZipStream(inFile, CompressionMode.Decompress)

Я попробовал несколько методов, но не могу понять это. У кого-либо есть какие-либо идеи?

Большое спасибо, Brett

6
задан Brett 12 August 2010 в 15:07
поделиться

1 ответ

У вас есть распаковывающий GZipStream , поэтому вам нужно прочитать из него данные. Самый простой способ - заключить GZipStream в StreamReader , который имеет метод ReadToEnd , возвращающий строку.

Что-то вроде:

string res;
using (var decompress = new GZipStream(inFile, CompressionMode.Decompress))
using (var sr = new StreamReader(decompress)) {
  res = sr.ReadToEnd();
}

( с использованием операторов гарантирует, что inFile будет закрыт, а любые другие ресурсы освобождены.)

NB здесь предполагается, что inFile содержит текст в кодировке UTF-8 или UTF-16. Двоичное содержимое или другая кодировка текста могут вызвать проблемы (вы можете переопределить кодировку с помощью другого конструктора StreamReader ).

23
ответ дан 8 December 2019 в 05:19
поделиться