goProject/trunk/goutil/zlibUtil/zlib.go
皮蛋13361098506 1b77f62820 初始化项目
2025-01-06 16:01:02 +08:00

49 lines
859 B
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}