1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.IO;
- using ICSharpCode.SharpZipLib;
- using ICSharpCode.SharpZipLib.GZip;
- /// <summary>
- /// GZIP相关工具集
- /// </summary>
- public partial class Utils
- {
- /// <summary>
- /// GZIP压缩
- /// </summary>
- /// <param name="content">压缩字符串</param>
- /// <returns>压缩后字符串</returns>
- public static string GZipEncode(string content)
- {
- return Bytes2Str(GZipEncode(Str2Bytes(content)));
- }
- /// <summary>
- /// GZIP压缩
- /// </summary>
- /// <param name="bytes">压缩字节流</param>
- /// <returns>压缩后的字节流</returns>
- public static byte[] GZipEncode(byte[] bytes)
- {
- MemoryStream ms = new MemoryStream();
- GZipOutputStream gz = new GZipOutputStream(ms);
- gz.Write(bytes, 0, bytes.Length);
- gz.Close();
- byte[] ret = ms.ToArray();
- ms.Close();
- return ret;
- }
- /// <summary>
- /// GZIP解压缩
- /// </summary>
- /// <param name="content">已压缩字符串</param>
- /// <returns>解压缩后字符串</returns>
- public static string GZipDecode(string content)
- {
- return Bytes2Str(GZipDecode(Str2Bytes(content)));
- }
- /// <summary>
- /// GZIP解压缩
- /// </summary>
- /// <param name="bytes">已压缩字节流</param>
- /// <returns>解压缩后字节流</returns>
- public static byte[] GZipDecode(byte[] bytes)
- {
- MemoryStream des = new MemoryStream();
- MemoryStream ms = new MemoryStream(bytes);
- GZipInputStream gz = new GZipInputStream(ms);
- int count = 0;
- int offset = 0;
- byte[] buf = new byte[1024 * 1024];
- do
- {
- count = gz.Read(buf, 0, buf.Length);
- des.Write(buf, 0, count);
- offset += count;
- } while (count > 0);
- gz.Close();
- byte[] ret = des.ToArray();
- ms.Close();
- return ret;
- }
- }
|