[C#] C#对字符串进行压缩和解压缩的算法代码 →→→→→进入此内容的聊天室

来自 , 2019-12-27, 写在 C#, 查看 171 次.
URL http://www.code666.cn/view/5fcb7f9c
  1. public class Compression
  2.     {
  3.         /// <summary>
  4.         /// 对字符串进行压缩
  5.         /// </summary>
  6.         /// <param name="str">待压缩的字符串</param>
  7.         /// <returns>压缩后的字符串</returns>
  8.          public static string CompressString(string str)
  9.         {  
  10.             string compressString = "";
  11.             byte[] compressBeforeByte = Encoding.GetEncoding("UTF-8").GetBytes(str);
  12.             byte[] compressAfterByte=Compress(compressBeforeByte);
  13.             //compressString = Encoding.GetEncoding("UTF-8").GetString(compressAfterByte);
  14.             compressString = Convert.ToBase64String(compressAfterByte);
  15.             return compressString;
  16.         }
  17.         /// <summary>
  18.         /// 对字符串进行解压缩
  19.         /// </summary>
  20.         /// <param name="str">待解压缩的字符串</param>
  21.         /// <returns>解压缩后的字符串</returns>
  22.         public static string DecompressString(string str)
  23.         {
  24.             string compressString = "";
  25.             //byte[] compressBeforeByte = Encoding.GetEncoding("UTF-8").GetBytes(str);
  26.             byte[] compressBeforeByte = Convert.FromBase64String(str);
  27.             byte[] compressAfterByte = Decompress(compressBeforeByte);
  28.             compressString = Encoding.GetEncoding("UTF-8").GetString(compressAfterByte);
  29.             return compressString;
  30.         }
  31.         /// <summary>
  32.         /// 对文件进行压缩
  33.         /// </summary>
  34.         /// <param name="sourceFile">待压缩的文件名</param>
  35.         /// <param name="destinationFile">压缩后的文件名</param>
  36.         public static void CompressFile(string sourceFile, string destinationFile)
  37.         {
  38.             throw new Exception("The method or operation is not implemented.");
  39.         }
  40.         /// <summary>
  41.         /// 对文件进行解压缩
  42.         /// </summary>
  43.         /// <param name="sourceFile">待解压缩的文件名</param>
  44.         /// <param name="destinationFile">解压缩后的文件名</param>
  45.         /// <returns></returns>
  46.         public static void DecompressFile(string sourceFile, string destinationFile)
  47.         {
  48.             throw new Exception("The method or operation is not implemented.");
  49.         }
  50.         /// <summary>
  51.         /// 对byte数组进行压缩
  52.         /// </summary>
  53.         /// <param name="data">待压缩的byte数组</param>
  54.         /// <returns>压缩后的byte数组</returns>
  55.         public static byte[] Compress(byte[] data)
  56.         {
  57.             try
  58.             {
  59.                 MemoryStream ms = new MemoryStream();
  60.                 GZipStream zip = new GZipStream(ms, CompressionMode.Compress,true);
  61.                 zip.Write(data, 0, data.Length);
  62.                 zip.Close();
  63.                 byte[] buffer = new byte[ms.Length];
  64.                 ms.Position=0;
  65.                 ms.Read(buffer, 0, buffer.Length);
  66.                 ms.Close();
  67.                 return buffer;
  68.  
  69.             }
  70.             catch (Exception e)
  71.             {
  72.                 throw new Exception(e.Message);
  73.             }
  74.         }
  75.         public static byte[] Decompress(byte[] data)
  76.         {
  77.             try
  78.             {
  79.                 MemoryStream ms = new MemoryStream(data);
  80.                 GZipStream zip = new GZipStream(ms, CompressionMode.Decompress, true);
  81.                 MemoryStream msreader = new MemoryStream();
  82.                 byte[] buffer = new byte[0x1000];
  83.                 while (true)
  84.                 {
  85.                     int reader = zip.Read(buffer, 0, buffer.Length);
  86.                     if (reader <= 0)
  87.                     {
  88.                         break;
  89.                     }
  90.                     msreader.Write(buffer, 0, reader);
  91.                 }
  92.                 zip.Close();
  93.                 ms.Close();
  94.                 msreader.Position = 0;
  95.                 buffer = msreader.ToArray();
  96.                 msreader.Close();
  97.                 return buffer;
  98.             }
  99.             catch (Exception e)
  100.             {
  101.                 throw new Exception(e.Message);
  102.             }
  103.         }
  104.     }
  105. //csharp/8278

回复 "C#对字符串进行压缩和解压缩的算法代码"

这儿你可以回复上面这条便签

captcha