Hai un decompressione GZipStream
, quindi è necessario leggere i dati da esso. Il modo più semplice è quello di avvolgere il GZipStream
con un StreamReader
che ha un metodo ReadToEnd
che restituisce una stringa.
Qualcosa di simile:
string res;
using (var decompress = new GZipStream(inFile, CompressionMode.Decompress))
using (var sr = new StreamReader(decompress)) {
res = sr.ReadToEnd();
}
(using
dichiarazioni garantire che inFile
è chiuso e tutte le altre risorse sono liberati.)
NB questo non dare per scontato che inFile
contiene testo codificato UTF-8 o UTF -16. Il contenuto binario o altra codifica del testo potrebbe causare problemi (è possibile ignorare la codifica con un diverso costruttore StreamReader
).
possibile duplicato di [Come si ottiene una stringa da un MemoryStream?] (Http://stackoverflow.com/questions/78181/how-do-you-get-a-string-from-a-memorystream) –
Quando utilizzo: var sr = new StreamReader (ms); var myStr = sr.ReadToEnd(); la stringa torna vuota. Potrei perdere qualcosa sulla conversione di un GZipStream in un MemoryStream? – Brett
se inFile è sempre un file di testo, allora la soluzione/collegamento suggerita da @Steven funzionerà. I formati sono diversi, quindi puoi avere solo una rappresentazione bade64 dei dati. –