如何按字节大小比较文本的原始版本和压缩版本

时间:2018-12-15 13:56:31

标签: go zip

我有一小段压缩成字符串的代码,然后它将压缩后的版本读回原始版本。

如何测量压缩水平?即计算字符串前后的字节数?

    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)
    }

我在游乐场https://play.golang.org/p/9T2BOpCFmar中有此代码

1 个答案:

答案 0 :(得分:5)

在尺寸之前:

fmt.Println(len(sentence))

大小后:

fmt.Println(buf.Len())

在关闭编写器之前,请确保先调用buf.Len()