Quel pourrait être le problème avec ces méthodes?Problèmes avec le flux de décompression .net gzip
byte[] bytes;
using (var memory_stream = new MemoryStream())
using (var gzip_stream = new GZipStream(memory_stream, CompressionMode.Compress))
{
var buffer = Encoding.Default.GetBytes("Hello nurse!");
gzip_stream.Write(buffer, 0, buffer.Length);
bytes = memory_stream.ToArray();
}
int total_read = 0;
using (var input_stream = new MemoryStream(bytes))
using (var gzip_stream = new GZipStream(input_stream, CompressionMode.Decompress, true))
{
int read;
var buffer = new byte[4096];
while ((read = gzip_stream.Read(buffer, 0, buffer.Length)) != 0) {
total_read += read;
}
}
Debug.WriteLine(bytes);
Debug.WriteLine(total_read);
Le gzipStr est valide gzippée flux (je pouvais compresser avec succès GZipStream() Compress).
Pourquoi total_read est toujours 0 ??? est-ce que le flux gzip décompresse mon flux? Est-ce que je fais quelque chose de mal?
Qu'est-ce que je fais mal ici ??? !!!
Ok, je suis arrivé avec votre point flux gzip et Flush utiliser Encoding.Default/Encoding.UTF8. .. B Mon problème n'a jamais été lié à la compression gzip, ça marche bien ... J'ai fait vos modifications mais j'ai lu _stills_ 0 Donc le problème principal persiste – kementeus
Je viens de poster le code exact que j'utilise. Si vous enlevez le Flush, il donne 0, si vous le mettez, il donne 12. Je suis d'accord sur le fait que Encoding.UTF8 est un problème secondaire, mais il vaut toujours la peine d'être attentif à l'encodage. –