.NET包括使用不同的算法压缩和解压缩流的类型。可以使用DeflateStream和GZipStream压缩和解压缩流;ZipArchive类可以创建和读取ZIP文件。
DeflateStream和GZipStream使用相同的压缩算法(事实上,GZipStream在后台使用DeflateStream),但GZipStream增加了循环冗余校验,来检测数据的损坏情况。Brotli是谷歌中比较新的开源压缩算法。Brotli的速度类似于抑制算法,但它提供了更好的压缩。与大多数其他压缩算法不同的是,它给常用的单词使用一个字典,来进行更好的压缩。目前大多数现代浏览器都支持这种算法。
使用zip文件的优点是可以将文件压缩到存档(使用ZipArchive),并且可以使用Windows资源管理器直接打开该存档;它自从1998年开始就安装到Windows系统中。不能使用Windows资源管理器打开gzip归档文件;打开gzip需要第三方工具。
注意:
DeflateStream和GZipStream使用的算法是抑制算法。该算法由RFC 1951定义(https://tools.ietf.org/html/rfc1951)。这个算法被广泛认为不受专利的限制,因此得到广泛使用。
Brotli可以在GitHub上的https://github.com/google/brotli获得,它由RFC 7932(https://tools.ietf.org/html/rfc7932)定义。
Comp