Connecting

Go 언어 압축 및 압축 풀기 본문

Go 언어

Go 언어 압축 및 압축 풀기

팬도라 2020. 7. 23. 16:15
반응형

Go 언어에서는 간단하게 파일을 압축하고 풀수 있는 패키지를 기본적으로 제공합니다. 각각의 예제를 작성하고 실행하겠습니다.

파일 압축하기

package main

import (
    "compress/gzip"
    f "fmt"
    "os"
)

func main() {

    file, err := os.OpenFile(
        "hello.txt.gz",
        os.O_CREATE|os.O_RDWR|os.O_TRUNC,
        os.FileMode(0644))
    if err != nil {
        f.Println(err)
        return
    }
    defer file.Close()

    w := gzip.NewWriter(file)
    defer w.Close()

    s := "Hello World"
    w.Write([]byte(s))
    w.Flush()

}

파일 압축 풀기

package main

import (
    "compress/gzip"
    f "fmt"
    "io/ioutil"
    "os"
)

func main() {

    file, err := os.Open("hello.txt.gz")
    if err != err {
        f.Println(err)
        return
    }
    defer file.Close()

    r, err := gzip.NewReader(file)
    if err != nil {
        f.Println(err)
        return
    }
    defer r.Close()

    b, err := ioutil.ReadAll(r)
    if err != nil {
        f.Println(err)
        return
    }

    f.Println(string(b))

}
Comments