package gzip import ( "bytes" "compress/gzip" "io/ioutil" ) // 使用gzip解压缩数据 func DecompressData(compressedData []byte) ([]byte, error) { buf := bytes.NewReader(compressedData) decompressor, err := gzip.NewReader(buf) if err != nil { return nil, err } defer decompressor.Close() result, err := ioutil.ReadAll(decompressor) if err != nil { return nil, err } return result, nil } func GZipDecompress(input []byte) (string, error) { buf := bytes.NewBuffer(input) reader, gzipErr := gzip.NewReader(buf) if gzipErr != nil { return "", gzipErr } defer reader.Close() result, readErr := ioutil.ReadAll(reader) if readErr != nil { return "", readErr } return string(result), nil } func GZipCompress(input string) ([]byte, error) { var buf bytes.Buffer gz := gzip.NewWriter(&buf) _, err := gz.Write([]byte(input)) if err != nil { return nil, err } err = gz.Flush() if err != nil { return nil, err } err = gz.Close() if err != nil { return nil, err } return buf.Bytes(), nil }