C#字符串压缩
C#字符串压缩
#region 压缩和解压字符串/// /// 将传入字符串以GZip算法压缩后,返回Base64编码字符/// /// 需要压缩的字符串/// 压缩后的Base64编码的字符串 public static string GZipCompressString(string rawString){if (string.IsNullOrEmpty(rawString) || rawString.Length == 0){return "";}else{byte[] rawData = System.Text.Encoding.UTF8.GetBytes(rawString.ToString());byte[] zippedData = Compress(rawData);return (string)(Convert.ToBase64String(zippedData));}}/// /// GZip压缩/// /// /// static byte[] Compress(byte[] rawData){System.IO.MemoryStream ms = new System.IO.MemoryStream();System.IO.Compression.GZipStream compressedzipStream = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Compress, true);compressedzipStream.Write(rawData, 0, rawData.Length);compressedzipStream.Close();return ms.ToArray();}/// /// 解压Sring /// /// /// public static string GetStringByString(string Value){//DataSet ds = new DataSet();string CC = GZipDecompressString(Value);//System.IO.StringReader Sr = new System.IO.StringReader(CC);//ds.ReadXml(Sr);return CC;}/// /// 解压/// /// /// public static DataSet GetDatasetByString(string Value){DataSet ds = new DataSet();string CC = GZipDecompressString(Value);System.IO.StringReader Sr = new System.IO.StringReader(CC);ds.ReadXml(Sr);return ds;}/// /// 将传入的二进制字符串资料以GZip算法解压缩/// /// 经GZip压缩后的二进制字符串/// 原始未压缩字符串 public static string GZipDecompressString(string zippedString){if (string.IsNullOrEmpty(zippedString) || zippedString.Length == 0){return "";}else{byte[] zippedData = Convert.FromBase64String(zippedString.ToString());return (string)(System.Text.Encoding.UTF8.GetString(Decompress(zippedData)));}}/// /// ZIP解压/// /// /// public static byte[] Decompress(byte[] zippedData){System.IO.MemoryStream ms = new System.IO.MemoryStream(zippedData);System.IO.Compression.GZipStream compressedzipStream = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Decompress);System.IO.MemoryStream outBuffer = new System.IO.MemoryStream();byte[] block = new byte[1024];while (true){int bytesRead = compressedzipStream.Read(block, 0, block.Length);if (bytesRead <= 0)break;elseoutBuffer.Write(block, 0, bytesRead);}compressedzipStream.Close();return outBuffer.ToArray();}#endregion
转载自:https://www.cnblogs.com/sdusrz/p/13267793.html
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
