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
}
}
}
'golang' 카테고리의 다른 글
golang generic 사용으로 empty interface boxing, unboxing 코드 수정 (1) | 2024.10.06 |
---|---|
golang gzip 압축 해제 (0) | 2024.10.06 |
golang gzip 압축 (0) | 2024.10.01 |
golang brotli 브로틀리 압축 (0) | 2024.10.01 |
golang ToCamelCase ToPascalCase (0) | 2024.10.01 |