Usted tiene un descomprimir GZipStream
, por lo que necesita para leer datos de él. La forma más fácil es envolver el GZipStream
con un StreamReader
que tiene un método ReadToEnd
que devuelve una cadena.
Algo así como:
string res;
using (var decompress = new GZipStream(inFile, CompressionMode.Decompress))
using (var sr = new StreamReader(decompress)) {
res = sr.ReadToEnd();
}
(using
declaraciones asegurar que inFile
está cerrada y se liberan todos los demás recursos.)
NB esto suponga que inFile
contiene texto codificado UTF-8 o UTF -dieciséis. El contenido binario u otra codificación de texto podría causar problemas (puede anular la codificación con un constructor diferente StreamReader
).
posible duplicado de [¿Cómo se obtiene una cadena de un MemoryStream?] (Http://stackoverflow.com/questions/78181/how-do-you-get-a-string-from-a-memorystream) –
Cuando uso: var sr = new StreamReader (ms); var myStr = sr.ReadToEnd(); la cadena vuelve vacía. ¿Me podría estar perdiendo algo al convertir un GZipStream a un MemoryStream? – Brett
si su inFile es siempre un archivo de texto, entonces la solución/enlace sugerido por @Steven funcionará. Si los formatos son diferentes, entonces solo puede tener una representación bade64 de los datos. –