zlib compress uncompress

func Compress(input []byte, compressOption int) ([]byte, error) {
	var in bytes.Buffer
	zlibWriter, err := zlib.NewWriterLevel(&in, compressOption)
	if err != nil {
		return nil, err
	}
	_, err = zlibWriter.Write(input)
	if err != nil {
		return nil, err
	}
	zlibWriter.Close()
	return in.Bytes(), nil
}

func UnCompress(input []byte) ([]byte, error) {
	var out bytes.Buffer
	zlibReader, err := zlib.NewReader(bytes.NewBuffer(input))
	if err != nil {
		return nil, err
	}
	_, err = io.Copy(&out, zlibReader)
	if err != nil {
		return nil, err
	}
	zlibReader.Close()
	return out.Bytes(), nil
}

posted on 2017-04-28 16:11  逄美丽守护神  阅读(442)  评论(3)    收藏  举报

导航