zoukankan      html  css  js  c++  java
  • 利用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());
            }
        }
    }

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

  • 相关阅读:
    [NOIP2008] 传纸条
    [NOIP2006] 能量项链
    [poj2393] Yogurt factory
    [poj3069] Saruman's Army
    [NOIP2011] 观光公交
    [NOIP2010] 关押罪犯
    [洛谷2744] 量取牛奶
    [poj3281] Dining
    关于几类STL容器的swap复杂度问题
    折半法
  • 原文地址:https://www.cnblogs.com/dc-lancer/p/3232237.html
Copyright © 2011-2022 走看看