Golang compress/flate.NewWriter() and NewWriterDict() functions example

package compress/flate

Golang compress/flate.NewWriter() and NewWriterDict() functions usage example.

 package main

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

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

 defer outputFile.Close()

 flateWriter, err := flate.NewWriter(outputFile, flate.BestCompression)

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

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

 flateWriter.Flush() // remember to flush!
 }

and if you want to compress the file with your own dictionary, use NewWriterDict() function instead

 var dict = "test files for Golang"
 flateWriter, err := flate.NewWriterDict(outputFile, flate.BestCompression, []byte(dict))

References :

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

https://golang.org/pkg/compress/flate/#NewWriterDict

Advertisement