golang
golang brotli 브로틀리 압축 해제
kimbs0301
2024. 10. 6. 15:19
brotli 모듈 저장소
github.com/andybalholm/brotli
main_test.go
package main
import (
"bufio"
"fmt"
"io"
"os"
"testing"
"github.com/andybalholm/brotli"
)
// TestDecompress
func TestDecompress(t *testing.T) {
inFile, err := os.Open("C:/files/big-text-file.txt.br")
if err != nil {
fmt.Println(err)
return
}
defer inFile.Close()
outFile, err := os.Create("C:/files/big-text-file")
if err != nil {
fmt.Println(err)
return
}
defer outFile.Close()
inFileReader := brotli.NewReader(inFile)
outFileWriter := bufio.NewWriterSize(outFile, 4096)
buf := make([]byte, 4096, 4096)
for {
n, err := inFileReader.Read(buf)
if err != nil {
if err == io.EOF {
fmt.Printf("ok n: %d\n", n)
} else {
fmt.Printf("inFileReader.Read() method execution error, error is: %v\n", err)
}
break
}
_, err = outFileWriter.Write(buf[:n])
if err != nil {
fmt.Printf("outFileWriter.Write() method execution error, error is: %v\n", err)
break
}
if err := outFileWriter.Flush(); err != nil {
fmt.Printf("outFileWriter.Flush() method execution error, error is: %v\n", err)
break
}
}
}