基于Zlib算法的流压缩、字符串压缩源码

原文:基于Zlib算法的流压缩、字符串压缩源码

Zlib.net官方源码demo中提供了压缩文件的源码算法。处于项目研发的需要,我需要对内存流进行压缩,由于zlib.net并无相关文字帮助只能自己看源码解决。通过对SharpZipLib的demo研究,写出了Zlib.net的流压缩算法。

中间花费了不少的时间,应为通过Stream压缩出来的数据全是空的,呵呵,主要原因就是忽略了ZOutputStream.flush()和ZOutPutStream.close()方法。大家自己看吧。关于字符串压缩,自然是把字符串塞到MemoryStream中就可以了:)

其中Zlib.net从http://www.componentace.com下载。/Files/yangyong/zlib.NET_104.rar

现贴源码如下:

  1基于Zlib算法的流压缩、字符串压缩源码using System;

  2基于Zlib算法的流压缩、字符串压缩源码using System.Collections.Generic;

  3基于Zlib算法的流压缩、字符串压缩源码using System.Text;

  4基于Zlib算法的流压缩、字符串压缩源码using System.Xml;

  5基于Zlib算法的流压缩、字符串压缩源码using System.Data;

  6基于Zlib算法的流压缩、字符串压缩源码using System.IO;

  7基于Zlib算法的流压缩、字符串压缩源码using System.Runtime.Serialization.Formatters.Binary;

  8基于Zlib算法的流压缩、字符串压缩源码using ComponentAce.Compression.Libs.zlib;

  9基于Zlib算法的流压缩、字符串压缩源码

 10基于Zlib算法的流压缩、字符串压缩源码namespace Test.Compress

 11基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

 12基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码    /**//**//**//// <summary>

 13基于Zlib算法的流压缩、字符串压缩源码    /// Zlib压缩算法压缩应用类

 14基于Zlib算法的流压缩、字符串压缩源码  /// </summary>

 15基于Zlib算法的流压缩、字符串压缩源码    public class ZlibCompress

 16基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码    基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

 17基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码        /**//**//**//// <summary>

 18基于Zlib算法的流压缩、字符串压缩源码        /// 拷贝复制流字节

 19基于Zlib算法的流压缩、字符串压缩源码        /// </summary>

 20基于Zlib算法的流压缩、字符串压缩源码        /// <param name="input"></param>

 21基于Zlib算法的流压缩、字符串压缩源码        /// <param name="output"></param>

 22基于Zlib算法的流压缩、字符串压缩源码        private static void CopyStream(Stream input, Stream output)

 23基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码        基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

 24基于Zlib算法的流压缩、字符串压缩源码            byte[] buffer = new byte[ZipConst.ZIP_BUFFER_SIZE];

 25基于Zlib算法的流压缩、字符串压缩源码            int len;

)

 27基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码            基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

, len);

 29基于Zlib算法的流压缩、字符串压缩源码            }

 30基于Zlib算法的流压缩、字符串压缩源码            output.Flush();

 31基于Zlib算法的流压缩、字符串压缩源码        }

 32基于Zlib算法的流压缩、字符串压缩源码

 33基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码        /**//**//**//// <summary>

 34基于Zlib算法的流压缩、字符串压缩源码        /// 压缩文件

 35基于Zlib算法的流压缩、字符串压缩源码    /// </summary>

 36基于Zlib算法的流压缩、字符串压缩源码        /// <param name="FileName">被压缩文件名(必须输入绝对路径)</param>

 37基于Zlib算法的流压缩、字符串压缩源码        /// <param name="CompressedFileName">压缩后保存的文件名(必须输入绝对路径)</param>

 38基于Zlib算法的流压缩、字符串压缩源码        /// <returns></returns>

 39基于Zlib算法的流压缩、字符串压缩源码        public static bool CompressFile(string FileName, string CompressedFileName)

 40基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码        基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

 41基于Zlib算法的流压缩、字符串压缩源码            bool bResult = false;

 42基于Zlib算法的流压缩、字符串压缩源码

 43基于Zlib算法的流压缩、字符串压缩源码            FileStream outFileStream = new FileStream(CompressedFileName, FileMode.Create);

 44基于Zlib算法的流压缩、字符串压缩源码            ZOutputStream outZStream = new ZOutputStream(outFileStream, zlibConst.Z_DEFAULT_COMPRESSION);

 45基于Zlib算法的流压缩、字符串压缩源码            FileStream inFileStream = new FileStream(FileName, FileMode.Open);

 46基于Zlib算法的流压缩、字符串压缩源码            try

 47基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码            基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

 48基于Zlib算法的流压缩、字符串压缩源码                CopyStream(inFileStream, outZStream);

 49基于Zlib算法的流压缩、字符串压缩源码                bResult = true;

 50基于Zlib算法的流压缩、字符串压缩源码            }

 51基于Zlib算法的流压缩、字符串压缩源码            catch

 52基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码            基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

 53基于Zlib算法的流压缩、字符串压缩源码                bResult = false;

 54基于Zlib算法的流压缩、字符串压缩源码            }

 55基于Zlib算法的流压缩、字符串压缩源码            finally

 56基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码            基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

 57基于Zlib算法的流压缩、字符串压缩源码                outZStream.Close();

 58基于Zlib算法的流压缩、字符串压缩源码                outFileStream.Close();

 59基于Zlib算法的流压缩、字符串压缩源码                inFileStream.Close();

 60基于Zlib算法的流压缩、字符串压缩源码            }

 61基于Zlib算法的流压缩、字符串压缩源码            return bResult;

 62基于Zlib算法的流压缩、字符串压缩源码        }

 63基于Zlib算法的流压缩、字符串压缩源码

 64基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码        /**//**//**//// <summary>

 65基于Zlib算法的流压缩、字符串压缩源码        /// 解压文件

 66基于Zlib算法的流压缩、字符串压缩源码    /// </summary>

 67基于Zlib算法的流压缩、字符串压缩源码        /// <param name="CompressedFileName">被解压文件名(必须输入绝对路径)</param>

 68基于Zlib算法的流压缩、字符串压缩源码        /// <param name="DecompressFileName">解压后保存的文件名(必须输入绝对路径)</param>

 69基于Zlib算法的流压缩、字符串压缩源码        /// <returns></returns>

 70基于Zlib算法的流压缩、字符串压缩源码        public static bool DecompressFile(string CompressedFileName, string DecompressFileName)

 71基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码        基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

 72基于Zlib算法的流压缩、字符串压缩源码            bool bResult = false;

 73基于Zlib算法的流压缩、字符串压缩源码            FileStream outFileStream = new FileStream(DecompressFileName, FileMode.Create);

 74基于Zlib算法的流压缩、字符串压缩源码            ZOutputStream outZStream = new ZOutputStream(outFileStream);

 75基于Zlib算法的流压缩、字符串压缩源码            FileStream inFileStream = new FileStream(CompressedFileName, FileMode.Open);

 76基于Zlib算法的流压缩、字符串压缩源码            try

 77基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码            基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

 78基于Zlib算法的流压缩、字符串压缩源码                CopyStream(inFileStream, outZStream);

 79基于Zlib算法的流压缩、字符串压缩源码                bResult = true;

 80基于Zlib算法的流压缩、字符串压缩源码            }

 81基于Zlib算法的流压缩、字符串压缩源码            catch

 82基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码            基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

 83基于Zlib算法的流压缩、字符串压缩源码                bResult = false;

 84基于Zlib算法的流压缩、字符串压缩源码            }

 85基于Zlib算法的流压缩、字符串压缩源码            finally

 86基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码            基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

 87基于Zlib算法的流压缩、字符串压缩源码                outZStream.Close();

 88基于Zlib算法的流压缩、字符串压缩源码                outFileStream.Close();

 89基于Zlib算法的流压缩、字符串压缩源码                inFileStream.Close();

 90基于Zlib算法的流压缩、字符串压缩源码            }

 91基于Zlib算法的流压缩、字符串压缩源码            return bResult;

 92基于Zlib算法的流压缩、字符串压缩源码        }

 93基于Zlib算法的流压缩、字符串压缩源码

 94基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码        /**//**//**//// <summary>

 95基于Zlib算法的流压缩、字符串压缩源码        /// 压缩byte数组数据

 96基于Zlib算法的流压缩、字符串压缩源码    /// </summary>

 97基于Zlib算法的流压缩、字符串压缩源码        /// <param name="SourceByte">需要被压缩的Byte数组数据</param>

 98基于Zlib算法的流压缩、字符串压缩源码        /// <returns></returns>

 99基于Zlib算法的流压缩、字符串压缩源码        public static byte[] CompressBytes(byte[] SourceByte)

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码        基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

基于Zlib算法的流压缩、字符串压缩源码            try

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码            基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

基于Zlib算法的流压缩、字符串压缩源码                MemoryStream stmInput = new MemoryStream(SourceByte);

基于Zlib算法的流压缩、字符串压缩源码                Stream stmOutPut = ZlibCompress.CompressStream(stmInput);

基于Zlib算法的流压缩、字符串压缩源码                byte[] bytOutPut = new byte[stmOutPut.Length];

;

, bytOutPut.Length);

基于Zlib算法的流压缩、字符串压缩源码                return bytOutPut;

基于Zlib算法的流压缩、字符串压缩源码            }

基于Zlib算法的流压缩、字符串压缩源码            catch

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码            基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

基于Zlib算法的流压缩、字符串压缩源码                return null;

基于Zlib算法的流压缩、字符串压缩源码            }

基于Zlib算法的流压缩、字符串压缩源码        }

基于Zlib算法的流压缩、字符串压缩源码

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码        /**//**//**//// <summary>

基于Zlib算法的流压缩、字符串压缩源码        /// 解压byte数据数据

基于Zlib算法的流压缩、字符串压缩源码    /// </summary>

基于Zlib算法的流压缩、字符串压缩源码        /// <param name="SourceByte">需要被解压的byte数组数据</param>

基于Zlib算法的流压缩、字符串压缩源码        /// <returns></returns>

基于Zlib算法的流压缩、字符串压缩源码        public static byte[] DecompressBytes(byte[] SourceByte)

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码        基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

基于Zlib算法的流压缩、字符串压缩源码            try

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码            基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

基于Zlib算法的流压缩、字符串压缩源码                MemoryStream stmInput = new MemoryStream(SourceByte);

基于Zlib算法的流压缩、字符串压缩源码                Stream stmOutPut = ZlibCompress.DecompressStream(stmInput);

基于Zlib算法的流压缩、字符串压缩源码                byte[] bytOutPut = new byte[stmOutPut.Length];

;

, bytOutPut.Length);

基于Zlib算法的流压缩、字符串压缩源码                return bytOutPut;

基于Zlib算法的流压缩、字符串压缩源码            }

基于Zlib算法的流压缩、字符串压缩源码            catch

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码            基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

基于Zlib算法的流压缩、字符串压缩源码                return null;

基于Zlib算法的流压缩、字符串压缩源码            }

基于Zlib算法的流压缩、字符串压缩源码        }

基于Zlib算法的流压缩、字符串压缩源码

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码        /**//**//**//// <summary>

基于Zlib算法的流压缩、字符串压缩源码        /// 压缩流

基于Zlib算法的流压缩、字符串压缩源码    /// </summary>

基于Zlib算法的流压缩、字符串压缩源码        /// <param name="SourceStream">需要被压缩的流数据</param>

基于Zlib算法的流压缩、字符串压缩源码        /// <returns></returns>

基于Zlib算法的流压缩、字符串压缩源码        public static Stream CompressStream(Stream SourceStream)

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码        基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

基于Zlib算法的流压缩、字符串压缩源码            try

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码            基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

基于Zlib算法的流压缩、字符串压缩源码                MemoryStream stmOutTemp = new MemoryStream();

基于Zlib算法的流压缩、字符串压缩源码                ZOutputStream outZStream = new ZOutputStream(stmOutTemp, zlibConst.Z_DEFAULT_COMPRESSION);

基于Zlib算法的流压缩、字符串压缩源码                CopyStream(SourceStream, outZStream);

基于Zlib算法的流压缩、字符串压缩源码                outZStream.finish();

基于Zlib算法的流压缩、字符串压缩源码                return stmOutTemp;

基于Zlib算法的流压缩、字符串压缩源码            }

基于Zlib算法的流压缩、字符串压缩源码            catch

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码            基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

基于Zlib算法的流压缩、字符串压缩源码                return null;

基于Zlib算法的流压缩、字符串压缩源码            }

基于Zlib算法的流压缩、字符串压缩源码        }

基于Zlib算法的流压缩、字符串压缩源码

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码        /**//**//**//// <summary>

基于Zlib算法的流压缩、字符串压缩源码        /// 解压流

基于Zlib算法的流压缩、字符串压缩源码    /// </summary>

基于Zlib算法的流压缩、字符串压缩源码        /// <param name="SourceStream">需要被解缩的流数据</param>

基于Zlib算法的流压缩、字符串压缩源码        /// <returns></returns>

基于Zlib算法的流压缩、字符串压缩源码        public static Stream DecompressStream(Stream SourceStream)

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码        基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

基于Zlib算法的流压缩、字符串压缩源码            try

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码            基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

基于Zlib算法的流压缩、字符串压缩源码                MemoryStream stmOutput = new MemoryStream();

基于Zlib算法的流压缩、字符串压缩源码                ZOutputStream outZStream = new ZOutputStream(stmOutput);

基于Zlib算法的流压缩、字符串压缩源码                CopyStream(SourceStream, outZStream);

基于Zlib算法的流压缩、字符串压缩源码                outZStream.finish();

基于Zlib算法的流压缩、字符串压缩源码                return stmOutput;

基于Zlib算法的流压缩、字符串压缩源码            }

基于Zlib算法的流压缩、字符串压缩源码            catch

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码            基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

基于Zlib算法的流压缩、字符串压缩源码                return null;

基于Zlib算法的流压缩、字符串压缩源码            }

基于Zlib算法的流压缩、字符串压缩源码        }

基于Zlib算法的流压缩、字符串压缩源码

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码        /**//**//**//// <summary>

基于Zlib算法的流压缩、字符串压缩源码        /// 压缩字符串

基于Zlib算法的流压缩、字符串压缩源码    /// </summary>

基于Zlib算法的流压缩、字符串压缩源码        /// <param name="SourceString">需要被压缩的字符串</param>

基于Zlib算法的流压缩、字符串压缩源码        /// <returns></returns>

基于Zlib算法的流压缩、字符串压缩源码        public static string CompressString(string SourceString)

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码        基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

基于Zlib算法的流压缩、字符串压缩源码            byte[] byteSource = System.Text.Encoding.UTF8.GetBytes(SourceString);

基于Zlib算法的流压缩、字符串压缩源码            byte[] byteCompress = ZlibCompress.CompressBytes(byteSource);

基于Zlib算法的流压缩、字符串压缩源码            if (byteCompress != null)

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码            基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

基于Zlib算法的流压缩、字符串压缩源码                return Convert.ToBase64String(byteCompress);

基于Zlib算法的流压缩、字符串压缩源码            }

基于Zlib算法的流压缩、字符串压缩源码            else

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码            基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

基于Zlib算法的流压缩、字符串压缩源码                return null;

基于Zlib算法的流压缩、字符串压缩源码            }

基于Zlib算法的流压缩、字符串压缩源码        }

基于Zlib算法的流压缩、字符串压缩源码

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码        /**//**//**//// <summary>

基于Zlib算法的流压缩、字符串压缩源码        /// 解压字符串

基于Zlib算法的流压缩、字符串压缩源码    /// </summary>

基于Zlib算法的流压缩、字符串压缩源码        /// <param name="SourceString">需要被解压的字符串</param>

基于Zlib算法的流压缩、字符串压缩源码        /// <returns></returns>

基于Zlib算法的流压缩、字符串压缩源码        public static string DecompressString(string SourceString)

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码        基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

基于Zlib算法的流压缩、字符串压缩源码            byte[] byteSource = Convert.FromBase64String(SourceString);

基于Zlib算法的流压缩、字符串压缩源码            byte[] byteDecompress = ZlibCompress.DecompressBytes(byteSource);

基于Zlib算法的流压缩、字符串压缩源码            if (byteDecompress != null)

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码            基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

基于Zlib算法的流压缩、字符串压缩源码                return System.Text.Encoding.UTF8.GetString(byteDecompress);

基于Zlib算法的流压缩、字符串压缩源码            }

基于Zlib算法的流压缩、字符串压缩源码            else

基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码            基于Zlib算法的流压缩、字符串压缩源码基于Zlib算法的流压缩、字符串压缩源码{

基于Zlib算法的流压缩、字符串压缩源码                return null;

基于Zlib算法的流压缩、字符串压缩源码            }

基于Zlib算法的流压缩、字符串压缩源码        }

基于Zlib算法的流压缩、字符串压缩源码

基于Zlib算法的流压缩、字符串压缩源码    }

基于Zlib算法的流压缩、字符串压缩源码}

基于Zlib算法的流压缩、字符串压缩源码
上一篇:【CSS3】---only-child选择器+only-of-type选择器


下一篇:apache bench(ab)压力测试模拟POSt请求