Why doesn't this work? (sorry for some reason I cannot get a share button on Go Playground).
package main
import (
"bytes"
"compress/gzip"
"fmt"
"io"
)
func main() {
// ENCODE
data := []byte{1, 2, 3, 4, 5, 6, 7}
bb0 := bytes.NewBuffer(data)
byts := bb0.Bytes()
fmt.Printf("data = % x
", data)
fmt.Printf("byte buffer bb0 contains = % x
", byts)
bb1 := new(bytes.Buffer)
w := gzip.NewWriter(bb1)
s1, err := w.Write(byts)
fmt.Printf("%d bytes written using gzip writer, err = %v
", s1, err)
byts = bb1.Bytes()
fmt.Printf("byte buffer bb1 contains = % x
", byts)
// DECODE
r, err := gzip.NewReader(bb1)
bb2 := new(bytes.Buffer)
s2, err := io.Copy(bb2, r)
r.Close()
fmt.Printf("%d bytes copied from gzip reader, err = %v
", s2, err)
byts = bb2.Bytes()
fmt.Printf("byte buffer bb2 contains = % x
", byts)
}
The output I get
data = 01 02 03 04 05 06 07
byte buffer bb0 contains = 01 02 03 04 05 06 07
7 bytes written using gzip writer, err = <nil>
byte buffer bb1 contains = 1f 8b 08 00 00 09 6e 88 00 ff
0 bytes copied from gzip reader, err = unexpected EOF
byte buffer bb2 contains =
The reader doesn't seem to be doing anything, what am I doing wrong?