通过本文主要向大家介绍了golang 字符串拼接,golang 字符串,golang 字符串截取,golang 字符串长度,golang 字符串数组等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
在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())
}
</div>
库包地址
import "compress/zlib"
写入
func NewWriter func NewWriter(w io.Writer) *Writer</div>
读取压缩的数据
func NewReader func NewReader(r io.Reader) (io.ReadCloser, error)</div>
设置压缩等级,并压缩数据
func NewWriterLevel(w io.Writer, level int) (io.WriteCloser, os.Error)
下面是几个级别.
const (
NoCompression = 0
BestSpeed = 1
BestCompression = 9
DefaultCompression = -1
)
const (
NoCompression = flate.NoCompression
BestSpeed = flate.BestSpeed
BestCompression = flate.BestCompression
DefaultCompression = flate.DefaultCompression
)
</div>
写入数据
func (*Writer) Write func (z *Writer) Write(p []byte) (n int, err error)</div>
关闭
func (*Writer) Close func (z *Writer) Close() error</div>
Golang zlib压缩的效率和性能都还可以, 毕竟rsync也在用这个压缩算法。 其实zlib和gzip对比,貌似用gzip的多一点。 比如nginx的gzip压缩. 以前看过国外一个帖子,是说zlib比gzip更适合那种速度跟压缩效果均衡的场景。
</div>
