Я нуждаюсь в способе записать GZipStream в строку.
Я использую:
GZipStream Decompress = new GZipStream(inFile, CompressionMode.Decompress)
Я попробовал несколько методов, но не могу понять это. У кого-либо есть какие-либо идеи?
Большое спасибо, Brett
У вас есть распаковывающий 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
).