golang使用zip算法压缩字符串和还原

使用golang标准库zip包对字符串进行压缩和解压,直接上码

package main

import (
    "bytes"
    "compress/zlib"
    "fmt"
    "io/ioutil"
)

/*
@Time : 2021/9/13 17:09
@Author: iokde.com
*/

func main() {
    str := "iokde.com"
    fmt.Println("origin info is :", str)
    zipResult := zipStr(str)
    fmt.Println("zip result :", zipResult)
    origin := unzipStr(zipResult)
    fmt.Printf("zip string decode result: %s", origin)
}

func zipStr(origin string) (content string) {
    var b bytes.Buffer
    w := zlib.NewWriter(&b)
    w.Write([]byte(origin))
    w.Close()
    return b.String()
}

func unzipStr(zipContent string) (originInfo []byte) {
    var b bytes.Buffer
    b.WriteString(zipContent)
    r, err := zlib.NewReader(&b)
    if err != nil {
        fmt.Println(" err : ", err)
    }
    defer r.Close()

    //r.Close()
    originInfo, err = ioutil.ReadAll(r)
    if err != nil {
        fmt.Println(" err : ", err)
    }

    return originInfo
  }

运行结果如下:

origin info is : iokde.com
zip result : x����NI�K��  ���z
zip string decode result: iokde.com

zip压缩的结果是乱码,但是还原解压缩后是正常的; 参考:go pkg compress/zlib

本文链接:参与评论 »

--EOF--

提醒:本文最后更新于 994 天前,文中所描述的信息可能已发生改变,请谨慎使用。

Comments