Sé que esta pregunta se ha formulado anteriormente en Stackoverflow, pero no ha podido encontrar una explicación.StreamReader ReadToEnd() devuelve una cadena vacía en el primer intento
Cuando trato de leer una cadena de una matriz de bytes comprimida obtengo una cadena vacía en el primer intento, en el segundo que éxito y obtengo la cadena.
ejemplo Código:
public static string Decompress(byte[] gzBuffer)
{
if (gzBuffer == null)
return null;
using (var ms = new MemoryStream(gzBuffer))
{
using (var decompress = new GZipStream(ms, CompressionMode.Decompress))
{
using (var sr = new StreamReader(decompress, Encoding.UTF8))
{
string ret = sr.ReadToEnd();
// this is the extra check that is needed !?
if (ret == "")
ret = sr.ReadToEnd();
return ret;
}
}
}
}
son apreciados Todas las sugerencias. - Victor Cassel
No creo que necesite el cheque, parece redundante. – Nick