登录
首页 >  Golang >  Go问答

比较原始文本和gzip压缩文本的字节大小

来源:stackoverflow

时间:2024-03-25 12:45:30 442浏览 收藏

通过比较原始文本和 GZIP 压缩文本的字节大小,可以衡量压缩级别。本文提供了一种使用 Go 语言代码的方法来计算压缩前后字符串的字节数。原始文本存储在变量 `sentence` 中,而压缩后的文本存储在 `buf` 缓冲区中。`len(sentence)` 和 `buf.Len()` 函数分别返回原始文本和压缩文本的字节数,从而可以计算出压缩级别。

问题内容

我有一段代码,它被压缩为一个字符串,然后它将压缩版本读回原始版本。

如何测量压缩级别?即计算字符串之前和之后的字节数?

sentence := "A long time ago in a galaxy far, far away..."

    var buf bytes.Buffer
    zw := gzip.NewWriter(&buf)

    // Setting the Header fields is optional.
    zw.Name = "a-new-hope.txt"
    zw.Comment = "an epic space opera by George Lucas"
    zw.ModTime = time.Date(1977, time.May, 25, 0, 0, 0, 0, time.UTC)

    _, err := zw.Write([]byte(sentence))
    if err != nil {
        log.Fatal(err)
    }

    if err := zw.Close(); err != nil {
        log.Fatal(err)
    }

我在 go 演示中有这段代码 https://play.golang.org/p/9t2bopcfmar


解决方案


尺寸前:

fmt.println(len(sentence))

调整后尺寸:

fmt.Println(buf.Len())

请务必在关闭 writer 之前调用 buf.len()

今天关于《比较原始文本和gzip压缩文本的字节大小》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>