使用DeflateStream压缩与解压
生活随笔
收集整理的這篇文章主要介紹了
使用DeflateStream压缩与解压
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
具體可以了解下:http://msdn.microsoft.com/zh-cn/library/system.io.compression.deflatestream(v=vs.110).aspx
?
/// <summary>/// Compresses data using the <see cref="DeflateStream"/> algorithm./// </summary>/// <param name="data"></param>/// <returns></returns>public static byte[] DeflateData(byte[] data){if (data == null) return null;byte[] buffer = null;using (MemoryStream stream = new MemoryStream()){using (DeflateStream inflateStream = new DeflateStream(stream, CompressionMode.Compress, true)){inflateStream.Write(data, 0, data.Length);}stream.Seek(0, SeekOrigin.Begin);int length = Convert.ToInt32(stream.Length);buffer = new byte[length];stream.Read(buffer, 0, length);}return buffer;}/// <summary>/// Inflates compressed data using the <see cref="DeflateStream"/> algorithm./// </summary>/// <param name="compressedData"></param>/// <returns></returns>public static byte[] InflateData(byte[] compressedData){if (compressedData == null) return null;// initialize the default lenght to the compressed data length times 2int deflen = compressedData.Length * 2;byte[] buffer = null;using (MemoryStream stream = new MemoryStream(compressedData)){using (DeflateStream inflatestream = new DeflateStream(stream, CompressionMode.Decompress)){using (MemoryStream uncompressedstream = new MemoryStream()){using (BinaryWriter writer = new BinaryWriter(uncompressedstream)){int offset = 0;while (true){byte[] tempbuffer = new byte[deflen];int bytesread = inflatestream.Read(tempbuffer, offset, deflen);writer.Write(tempbuffer, 0, bytesread);if (bytesread < deflen || bytesread == 0) break;} // end while uncompressedstream.Seek(0, SeekOrigin.Begin);buffer = uncompressedstream.ToArray();}}}}return buffer;}?
總結
以上是生活随笔為你收集整理的使用DeflateStream压缩与解压的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: #51CTO学院四周年#其实、其实,我就
- 下一篇: centOS6.7 /etc/profi