使用go实现对字符串的zlib压缩和解压功能

动态 未结 0 105
小小草
小小草 LV1 2023年9月23日 23:40 发表
以下是使用Go实现字符串的zlib压缩和解压缩的示例代码: ```go package main import ( "bytes" "compress/zlib" "fmt" ) func main() { // 待压缩的字符串 originalString := "Hello, world!" // 压缩字符串 compressedData := compressString(originalString) fmt.Println("Compressed data:", compressedData) // 解压缩字符串 uncompressedData := decompressString(compressedData) fmt.Println("Uncompressed data:", uncompressedData) } // 压缩字符串 func compressString(originalString string) []byte { var b bytes.Buffer w := zlib.NewWriter(&b) w.Write([]byte(originalString)) w.Close() return b.Bytes() } // 解压缩字符串 func decompressString(compressedData []byte) string { b := bytes.NewReader(compressedData) r, err := zlib.NewReader(b) if err != nil { panic(err) } defer r.Close() var out bytes.Buffer _, err = out.ReadFrom(r) if err != nil { panic(err) } return out.String() } ``` 在上面的示例中,我们首先定义了一个待压缩的字符串`originalString`。然后,我们调用`compressString()`函数对该字符串进行压缩,并将压缩后的数据输出到控制台上。接着,我们调用`decompressString()`函数对压缩后的数据进行解压缩,并将解压缩后的字符串输出到控制台上。 需要注意的是,在使用`zlib.Writer`对象进行压缩时,我们需要调用它的`Close()`方法来确保所有数据都已经写入到底层的`io.Writer`中。在使用`zlib.Reader`对象进行解压缩时,我们需要将压缩后的数据传递给它的构造函数,并在使用完毕后调用它的`Close()`方法来释放资源。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复