How to Read and Write Gzipped Files in Go

Use the compress/gzip package to read and write gzip files in Go.

Use the compress/gzip package to create a Reader for decompression or a Writer for compression.

package main

import (
	"compress/gzip"
	"fmt"
	"io"
	"os"
)

func main() {
	// Read: Open file, wrap in gzip.Reader, read data
	f, _ := os.Open("data.gz")
	defer f.Close()
	gz, _ := gzip.NewReader(f)
	defer gz.Close()
	data, _ := io.ReadAll(gz)
	fmt.Println(string(data))

	// Write: Open file, wrap in gzip.Writer, write data
	out, _ := os.Create("data.gz")
	defer out.Close()
	gw := gzip.NewWriter(out)
	gw.Write([]byte("Hello, compressed world!"))
	gw.Close()
}