gzip压缩及解压缩

func main() {
	var b bytes.Buffer
	gzipWriter := gzip.NewWriter(&b)
	defer gzipWriter.Close()
	//写入gizp writer数据时,它会依次压缩数据并写入到底层的文件中
	gzipWriter.Write([]byte("Kris hello world!"))
	gzipWriter.Flush()
	log.Info("success")
	//解压缩
	r := bytes.NewReader(b.Bytes())
	gzipReader, err := gzip.NewReader(r)
	log.Error(err)
	if err != nil {
		log.Error(err)
		return
	}
	defer gzipReader.Close()
	unzipData, err := ioutil.ReadAll(gzipReader)
    if err != nil {
		if strings.Contains(err.Error(), "unexpected EOF") && len(unzipData) != 0 {
			goto:pars
		}
	}
	pars:
        //	执行你的下一步操作即可
	bytes, err := yaml.JSONToYAML(response)
	
}

 

你可能感兴趣的:(Go)