Golang compress/gzip.NewWriter() and NewWriterLevel() functions example

package compress/gzip

Golang compress/gzip.NewWriter() and NewWriterLevel() functions example

 package main

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

 func main() {
 inputFile, err := os.Open("file.txt")

 if err != nil {
 fmt.Println(err)
 os.Exit(1)
 }

 defer inputFile.Close()

 outputFile, err := os.Create("file.txt.gz")

 if err != nil {
 fmt.Println(err)
 os.Exit(1)
 }

 defer outputFile.Close()

 // for default compression, use
 // writer, err := gzip.NewWriter(outputFile)

 writer, err := gzip.NewWriterLevel(outputFile, gzip.BestCompression)

 if err != nil {
 fmt.Println("NewWriterLevel error ", err)
 os.Exit(1)
 }

 defer writer.Close()
 io.Copy(writer, inputFile)

 writer.Flush() // remember to flush the toilet!
 }

References :

https://golang.org/pkg/compress/gzip/#NewWriter

https://golang.org/pkg/compress/gzip/#NewWriterLevel

https://www.socketloop.com/tutorials/golang-gzip-file-example

https://www.socketloop.com/tutorials/golang-gunzip-file

Advertisement