main_test.go
package main
import (
"bufio"
"compress/gzip"
"fmt"
"io"
"os"
"testing"
)
// TestGzipCompression
func TestGzipCompression(t *testing.T) {
inFile, err := os.Open("C:/tmp/Isaac.Newton-Opticks.txt")
if err != nil {
fmt.Println(err)
return
}
defer inFile.Close()
outFile, err := os.Create("C:/tmp/Isaac.Newton-Opticks.txt.gz")
if err != nil {
fmt.Println(err)
return
}
defer outFile.Close()
inFileReader := bufio.NewReader(inFile)
compressionWriter, err := gzip.NewWriterLevel(outFile, gzip.BestCompression)
if err != nil {
fmt.Printf("gzip.NewWriterLevel() method execution error, error is: %v\n", err)
return
}
buf := make([]byte, 4096, 4096)
for {
n, err := inFileReader.Read(buf)
if err != nil {
if err == io.EOF {
fmt.Println("ok")
} else {
fmt.Printf("inFileReader.Read() method execution error, error is: %v\n", err)
}
break
}
_, err = compressionWriter.Write(buf[:n])
if err != nil {
fmt.Printf("compressionWriter.Write() method execution error, error is: %v\n", err)
break
}
if err := compressionWriter.Flush(); err != nil {
fmt.Printf("compressionWriter.Flush() method execution error, error is: %v\n", err)
break
}
}
//inFile.Close()
//outFile.Close()
}
사이즈 1.5 MB 텍스트 파일 압축 용량
524KB BestSpeed
376KB DefaultCompression
372KB BestCompression
'golang' 카테고리의 다른 글
golang gzip 압축 해제 (0) | 2024.10.06 |
---|---|
golang brotli 브로틀리 압축 해제 (0) | 2024.10.06 |
golang brotli 브로틀리 압축 (0) | 2024.10.01 |
golang ToCamelCase ToPascalCase (0) | 2024.10.01 |
golang UTC 타임존 변경 (0) | 2024.07.08 |