压缩字符串

来源:互联网 发布:黄桷树立交 知乎 编辑:程序博客网 时间:2024/04/29 23:42

  public   static   byte[]   CompressText(string   strSource)   //压缩  
  {    
  MemoryStream   mMemory   =   new   MemoryStream();  
  byte[]   byteSource   =   (new   UnicodeEncoding()).GetBytes(strSource);  
   
  Deflater   mDeflater   =    
  new   Deflater(ICSharpCode.SharpZipLib.Zip.Compression.Deflater.BEST_COMPRESSION);  
  ICSharpCode.SharpZipLib.Zip.Compression.Streams.DeflaterOutputStream   mStream   =    
  new   ICSharpCode.SharpZipLib.Zip.Compression.Streams.DeflaterOutputStream(mMemory,   mDeflater,   131072);  
   
  mStream.Write(byteSource,   0,   byteSource.Length);  
  mStream.Close();  
  byte[]   byteDest   =   mMemory.ToArray();  
  return   byteDest;  
  }    
   
  public   static   string   DeCompressText(byte[]   byteSource)   //解压缩  
  {    
  ICSharpCode.SharpZipLib.Zip.Compression.Streams.InflaterInputStream   mStream    
  =   new   ICSharpCode.SharpZipLib.Zip.Compression.Streams.InflaterInputStream(new   MemoryStream(byteSource));  
   
  MemoryStream   mMemory   =   new   MemoryStream();  
  Int32   mSize;  
  byte[]   mWriteData   =   new   byte[4096];  
  while(true)  
  {  
  mSize   =   mStream.Read(mWriteData,   0,   mWriteData.Length);  
  if   (mSize   >   0)  
  {  
  mMemory.Write(mWriteData,   0,   mSize);  
  }  
  else  
  {  
  break;  
  }  
  }  
  mStream.Close();  
  byte[]   byteDest   =   mMemory.ToArray();  
  return   (new   UnicodeEncoding()).GetString(byteDest,   0,   byteDest.Length);  
  }