C#对字符串进行压缩和解压缩的算法代码
发布时间:2020-12-15 17:57:15 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 C#对字符串进行压缩和解压缩的算法代码,字符串通过base64编码后传输 public class Compression { /// summary /// 对字符串进行压缩 /// /summary //
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考
C#对字符串进行压缩和解压缩的算法代码,字符串通过base64编码后传输
public class Compression { /// <summary> /// 对字符串进行压缩 /// </summary> /// <param name="str">待压缩的字符串</param> /// <returns>压缩后的字符串</returns> public static string CompressString(string str) { string compressString = ""; byte[] compressBeforeByte = Encoding.GetEncoding("UTF-8").GetBytes(str); byte[] compressAfterByte=Compress(compressBeforeByte); //compressString = Encoding.GetEncoding("UTF-8").GetString(compressAfterByte); compressString = Convert.ToBase64String(compressAfterByte); return compressString; } /// <summary> /// 对字符串进行解压缩 /// </summary> /// <param name="str">待解压缩的字符串</param> /// <returns>解压缩后的字符串</returns> public static string DecompressString(string str) { string compressString = ""; //byte[] compressBeforeByte = Encoding.GetEncoding("UTF-8").GetBytes(str); byte[] compressBeforeByte = Convert.FromBase64String(str); byte[] compressAfterByte = Decompress(compressBeforeByte); compressString = Encoding.GetEncoding("UTF-8").GetString(compressAfterByte); return compressString; } /// <summary> /// 对文件进行压缩 /// </summary> /// <param name="sourceFile">待压缩的文件名</param> /// <param name="destinationFile">压缩后的文件名</param> public static void CompressFile(string sourceFile,string destinationFile) { throw new Exception("The method or operation is not implemented."); } /// <summary> /// 对文件进行解压缩 /// </summary> /// <param name="sourceFile">待解压缩的文件名</param> /// <param name="destinationFile">解压缩后的文件名</param> /// <returns></returns> public static void DecompressFile(string sourceFile,string destinationFile) { throw new Exception("The method or operation is not implemented."); } /// <summary> /// 对byte数组进行压缩 /// </summary> /// <param name="data">待压缩的byte数组</param> /// <returns>压缩后的byte数组</returns> public static byte[] Compress(byte[] data) { try { MemoryStream ms = new MemoryStream(); GZipStream zip = new GZipStream(ms,CompressionMode.Compress,true); zip.Write(data,data.Length); zip.Close(); byte[] buffer = new byte[ms.Length]; ms.Position=0; ms.Read(buffer,buffer.Length); ms.Close(); return buffer; } catch (Exception e) { throw new Exception(e.Message); } } public static byte[] Decompress(byte[] data) { try { MemoryStream ms = new MemoryStream(data); GZipStream zip = new GZipStream(ms,CompressionMode.Decompress,true); MemoryStream msreader = new MemoryStream(); byte[] buffer = new byte[0x1000]; while (true) { int reader = zip.Read(buffer,buffer.Length); if (reader <= 0) { break; } msreader.Write(buffer,reader); } zip.Close(); ms.Close(); msreader.Position = 0; buffer = msreader.ToArray(); msreader.Close(); return buffer; } catch (Exception e) { throw new Exception(e.Message); } } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – Javascript for .NET 3.5:如何在弹出窗口关闭后给出
- oop – 最佳实践:默认的受保护或私有方法和测试驱动开发
- WebPack在React项目架构中的应用实践
- 更加 Swift 化的 Collection View 和 Table View Cells
- xml读取异常Invalid byte 1 of 1-byte UTF-8 sequence
- c#中的通用对象
- ruby-on-rails – 将Activerecord数据库迁移到Mongoid
- 一个用XML构建Swing视图的框架
- c# – AWS – 如何在AWSSDK for .NET中更改cloudwatchclien
- 如何等待ajax完成再执行相应操作