我希望压缩后的数据是以255 255结尾

动态 未结 0 63
小小草
小小草 LV1 2023年9月23日 23:40 发表
如果你希望压缩后的数据以特定的字节序列结尾,可以在压缩时添加该字节序列,并在解压缩时去除该字节序列。 以下是使用Go实现字符串的zlib压缩和解压缩,并在压缩时添加255 255结尾的示例代码: ```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.Write([]byte{255, 255}) w.Close() return b.Bytes() } // 解压缩字符串 func decompressString(compressedData []byte) string { // 去除结尾标记 compressedData = compressedData[:len(compressedData)-2] 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() } ``` 在上面的示例中,我们在压缩时添加了255 255结尾标记,并在解压缩时去除了该标记。需要注意的是,在解压缩时,我们需要先将结尾标记去除,然后再将剩余的数据传递给`zlib.NewReader()`构造函数进行解压缩。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复