2017-01-06 4 views
0

я использовать ionic.zip gzipstream компресс и распаковывать байт [], он может сжать хорошо, но когда он распаковывается из байта [] сжатый он сказалIonic.zip Gzipstream декомпрессия, плохое состояние (недействительный хранится длина блока)

Плохое состояние (недействительный хранятся длиной блока)

моих коды сильфонных

Trace.WriteLine(s.Length); 
var b = Encoding.UTF8.GetBytes(s); 
Trace.WriteLine(b.Length); 

byte[] b2; 

var sw = new Stopwatch(); 
sw.Start(); 
using (var m = new MemoryStream()) 
{ 
    var stream = new GZipStream(m, CompressionMode.Compress,true); 
    stream.Write(b,0,b.Length); 
    stream.Flush(); 
    b2 = m.GetBuffer(); 
    stream.Close(); 
    sw.Stop(); 
    Trace.WriteLine(sw.ElapsedMilliseconds); 
    Trace.WriteLine(b2.Length); 
} 

using (var m2 = new MemoryStream()) 
{ 
    m2.Write(b2,0,b2.Length); 
    m2.Position = 0; 
    var stream = new GZipStream(m2,CompressionMode.Decompress,true); 
    var m3 = new MemoryStream(); 
    var buffer = new byte[1024]; 
    var n = 1; 
    while (n != 0) 
    { 
     n = stream.Read(buffer, 0, buffer.Length); 
     if (n > 0) 
     { 
      m3.Write(buffer,0,n); 
     } 
    } 
    var b3 = m3.GetBuffer(); 
    Trace.WriteLine(b3); 
} 

код распаковки является то, что документ s помощь. here

и я не нашел никаких других документов, Что мне делать при распаковке?

ответ

0

Ах ~~~, это так дурак.

есть байт [] методы сжатия и распаковки.

GZipStream.CompressBuffer() и GZipStream.UncompressBuffer()