来源:自学PHP网 时间:2019-08-07 16:47 作者:小飞侠 阅读:次
[导读] Golang使用zlib压缩和解压缩字符串...
|
在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更适合那种速度跟压缩效果均衡的场景。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com