Golang使用zlib压缩和解压缩字符串
发布时间:2020-12-16 19:29:44 所属栏目:大数据 来源:网络整理
导读:在python的时候就习惯使用zlib进行网页压缩。 golang下同样使用zlib进行压缩解压缩。 zlib官方给出的方法很简单,这里权当一个补充. zlib.NewWriter() 只能传递 []byte类型数据. NewWriterLevel 可以传递压缩的等级. package main import ( "bytes" "compres
在python的时候就习惯使用zlib进行网页压缩。 golang下同样使用zlib进行压缩解压缩。 zlib官方给出的方法很简单,这里权当一个补充. zlib.NewWriter() 只能传递 []byte类型数据. NewWriterLevel 可以传递压缩的等级. package main import ( "bytes" "compress/zlib" "fmt" "io" ) func main() { var in bytes.Buffer b := []byte(`xiorui.cc`) w := zlib.NewWriter(&in) w.Write(b) w.Close() var out bytes.Buffer r,_ := zlib.NewReader(&in) io.Copy(&out,r) fmt.Println(out.String()) } 库包地址
写入 func NewWriter func NewWriter(w io.Writer) *Writer 读取压缩的数据 func NewReader func NewReader(r io.Reader) (io.ReadCloser,error) 设置压缩等级,并压缩数据
下面是几个级别. const ( NoCompression = 0 BestSpeed = 1 BestCompression = 9 DefaultCompression = -1 ) const ( NoCompression = flate.NoCompression BestSpeed = flate.BestSpeed BestCompression = flate.BestCompression DefaultCompression = flate.DefaultCompression ) 写入数据 func (*Writer) Write func (z *Writer) Write(p []byte) (n int,err error) 关闭 func (*Writer) Close func (z *Writer) Close() error Golang zlib压缩的效率和性能都还可以,毕竟rsync也在用这个压缩算法。 其实zlib和gzip对比,貌似用gzip的多一点。 比如nginx的gzip压缩. 以前看过国外一个帖子,是说zlib比gzip更适合那种速度跟压缩效果均衡的场景。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |