【实例简介】压缩base64字符串与 解压缩
【实例截图】
【核心代码】
using ICSharpCode.SharpZipLib.BZip2;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace MarkingMaster.src
{
public static class ZipBytes
{
//压缩base64字符串
public static string Compress(string uncompressedString)
{
if (uncompressedString == null || uncompressedString == "")
{
return "";
}
byte[] bytData = Encoding.Default.GetBytes(uncompressedString);
MemoryStream ms = new MemoryStream();
Stream s = new BZip2OutputStream(ms);
s.Write(bytData, 0, bytData.Length);
s.Close();
byte[] compressedData = (byte[])ms.ToArray();
return Convert.ToBase64String(compressedData, 0, compressedData.Length);
}
//解压base64字符串
public static string DeCompress(string compressedString)
{
try
{
if (compressedString == "")
return "";
StringBuilder uncompressedString = new StringBuilder();
int totalLength = 0;
byte[] bytInput = Convert.FromBase64String(compressedString); ;
byte[] writeData = new byte[4096];
Stream s2 = new BZip2InputStream(new MemoryStream(bytInput));
while (true)
{
int size = s2.Read(writeData, 0, writeData.Length);
if (size > 0)
{
totalLength = size;
uncompressedString.Append(Encoding.Default.GetString(writeData, 0, size));
}
else
{
break;
}
}
s2.Close();
return uncompressedString.ToString();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return "";
}
}
}
}