利用SharpZipLib对字符串进行压缩和解压缩
2024-09-28 22:14:54
添加对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, );
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());
}
}
}
对字符串的压缩与压缩文件一样,越大效果越明显,对很小的文件或者字符串进行压缩,得到的结果往往比压缩之前还要大
最新文章
- Reprint: ADB is Not Recognized as an internal or external command Fix
- showModalDialog 刷新问题,在页面中跳转问题
- 【BZOJ】1998: [Hnoi2010]Fsk物品调度
- 《软件性能测试与LoadRunner实战教程》新书上市
- 使用pathogen管理Vim插件并托管到Github
- Go对OO的选择
- 【jmeter】ANT批量执行Jmeter脚本
- Unity3D题目,Unity中利用GUI输出九九乘法表
- Eclipse设置合适的字体
- Fix Elementary Boot Screen (plymouth) After Installing Nvidia Drivers
- C# 初步学习
- 关于AJAX使用中出现中文乱码的问题
- Hive:添加、删除分区
- [Hive_5] Hive 的 JDBC 编程
- centos----------centos下如何安装phpstorm
- Promise.then的第二个参数与catch的区别
- sql注入(一)
- 821. Shortest Distance to a Character
- 【codeforces666E】Forensic Examination 广义后缀自动机+树上倍增+线段树合并
- 【Revit API】改变填充区域的填充样式