Bir açılırken GZipStream
var, yani bunu veri okumak gerekiyor. En kolay yol, GZipStream
'u bir dize döndüren ReadToEnd
yöntemine sahip StreamReader
ile sarmaktır.
şey gibi:
string res;
using (var decompress = new GZipStream(inFile, CompressionMode.Decompress))
using (var sr = new StreamReader(decompress)) {
res = sr.ReadToEnd();
}
(using
ifadeleri inFile
kapalıdır ve diğer kaynakları serbest olduğundan emin olun.)
NB bu inFile
metin UTF-8 veya UTF kodlanmış içeren varsayalım yok -16. İkili içerik veya diğer metin kodlaması sorunlara neden olabilir (farklı bir StreamReader
yapıcı ile kodlamayı geçersiz kılabilirsiniz).
olası bir kopyası [MemoryStream'den bir ip nasıl alınır?] (Http://stackoverflow.com/questions/78181/how-do-you-get-a-string-from-a-memorystream) –
Kullandığımda: var sr = new StreamReader (ms); var myStr = sr.ReadToEnd(); dizesi boş çıkıyor. Bir GZipStream'i bir MemoryStream'e dönüştürmede bir şey eksik olabilir miyim? – Brett
, inFile dosyanız her zaman bir metin dosyasıysa, @Steven tarafından önerilen çözüm/link çalışır. Bu biçimler farklıdır, o zaman verilerin sadece bir bade64 temsiline sahip olabilirsiniz. –