利用SharpZipLib对字符串进行压缩和解压缩

添加对ICSharpCode.SharpZipLib的引用。

using ICSharpCode.SharpZipLib.BZip2;

/// <summary>
        /// 压缩
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        private static string Compress(string text)
        {
            if (text.IsNullOrEmpty())
            {
                return string.Empty;
            }
            using (MemoryStream mZipStreamIn = new MemoryStream(Encoding.UTF8.GetBytes(text)))
            {
                using (MemoryStream mZipStreamOut = new MemoryStream())
                {
                    BZip2.Compress(mZipStreamIn, mZipStreamOut, true, 5);
                    return Convert.ToBase64String(mZipStreamOut.ToArray());
                }
            }
        }
/// <summary>
/// 解压缩
/// </summary>
/// <param name="zipText"></param>
/// <returns></returns>
private static string DeCompress(string zipText)
{
    if (zipText.IsNullOrEmpty())
    {
        return string.Empty;
    }
    using (MemoryStream mZipStreamIn = new MemoryStream(Convert.FromBase64String(zipText)))
    {
        using (MemoryStream mZipStreamOut = new MemoryStream())
        {
            BZip2.Decompress(mZipStreamIn, mZipStreamOut, false);
            return Encoding.UTF8.GetString(mZipStreamOut.ToArray());
        }
    }
}

对字符串的压缩与压缩文件一样,越大效果越明显,对很小的文件或者字符串进行压缩,得到的结果往往比压缩之前还要大

posted @ 2013-08-02 11:42  DCLancer  阅读(463)  评论(0编辑  收藏  举报
(function() { var c = document.createElement('script'); c.type = 'text/javascript'; c.async = true; c.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'www.clicki.cn/boot/48212'; var h = document.getElementsByTagName('script')[0]; h.parentNode.insertBefore(c, h); })();