C#实现GZip压缩和解压缩入门实例
主要是因为GZipStream的构造函数中第一个需要传入一个Stream,第二个是指定操作方式:压缩还是解压缩。 当时的疑问点主要有: 1.我传入的Stream是包含未压缩数据的Stream吗? 其实GZipStream里面存的是已经压缩过的数据流,传入的Stream是作为基础Stream传入,如果要压缩,那你就可以传一个空的Stream进去,如果要解压,就将包含压缩数据的Stream传进去。 而GZipStream的读和写分别对应的是解压和压缩两个操作,知道了这些,使用起来就简单了。 写入的数据会被压缩后写入到传入的Stream中,读取的数据也是解压后的数据,可以直接写入到一个新的流中。 复制代码 代码如下: byte[] cbytes = null; 同时 在压缩时传入的流可以是非空流,你可以在写入其他数据后再写入压缩数据,不会影响最后的结果。 如果你在解压时遇到“幻数头不正确”的提示,是因为你要解压的数据不是用GZip压缩的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |