Golang compress/zlib.NewWriter() and NewWriteLevel() functions example

package compress/zlib

Golang compress/zlib.NewWriter() and NewWriteLevel() functions usage example

 package main

 import (
 "compress/zlib"
 "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.zlib")

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

 defer outputFile.Close()

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

 writer, err := zlib.NewWriterLevel(outputFile, zlib.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/zlib/#NewWriter

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

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

Advertisement