goProject/.svn/pristine/b0/b01e2a83d07bca0b75930717f70befd11c03d7f5.svn-base

49 lines
859 B
Plaintext
Raw Normal View History

2025-01-06 16:21:36 +08:00
package zlibUtil
import (
"bytes"
"compress/zlib"
"io"
)
// 压缩
// in待压缩数据
// level压缩等级
// 返回值:
// 压缩后数据
// 对应的错误
func Compress(data []byte, level int) ([]byte, error) {
var buffer bytes.Buffer
compressor, err := zlib.NewWriterLevelDict(&buffer, level, nil)
if err != nil {
return nil, err
}
compressor.Write(data)
compressor.Close()
return buffer.Bytes(), nil
}
// 解压缩
// in:待解压缩数据
// 返回值:
// 解压缩后数据
// 对应的错误
func Decompress(data []byte) ([]byte, error) {
dataReader := bytes.NewReader(data)
zlibReader, err := zlib.NewReader(dataReader)
if err != nil {
return nil, err
}
defer zlibReader.Close()
var buffer bytes.Buffer
_, err = io.Copy(&buffer, zlibReader)
if err != nil {
return nil, err
}
return buffer.Bytes(), nil
}