国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Golang > 正文

Golang使用zlib壓縮和解壓縮字符串

2020-04-01 19:06:22
字體:
來源:轉載
供稿:網友

在python的時候就習慣使用zlib進行網頁壓縮。 golang/196411.html">golang/70688.html">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()) }

庫包地址

import "compress/zlib"

寫入

func NewWriter   func NewWriter(w io.Writer) *Writer

讀取壓縮的數據

func NewReader   func NewReader(r io.Reader) (io.ReadCloser, error)

設置壓縮等級,并壓縮數據

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)

寫入數據

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更適合那種速度跟壓縮效果均衡的場景。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 威宁| 永春县| 峨边| 永平县| 伊宁市| 胶南市| 阿瓦提县| 饶平县| 定南县| 五河县| 双峰县| 临夏市| 岳西县| 东乌珠穆沁旗| 岳池县| 永泰县| 梁河县| 留坝县| 邵阳市| 垦利县| 开鲁县| 杂多县| 浮梁县| 鹰潭市| 克什克腾旗| 浦江县| 东辽县| 迭部县| 天镇县| 兴仁县| 廊坊市| 宁波市| 改则县| 阿克陶县| 介休市| 锡林郭勒盟| 徐州市| 延庆县| 晋宁县| 浙江省| 息烽县|