15

Go を使用してファイルからチャンクを読み取り、それを astringおよびgzipこのチャンクとして扱いたいと考えています。ファイルから読み取って として扱う方法は知っていますstringが、それになるとcompress/gzip途方に暮れます。

(バイト スライス) にio.writer書き込む を作成し、を取得してから にファイルのチャンクを書き込むために使用する必要がありますか? 次に、文字列をバイト スライスとして扱う必要があります。bufgzip.NewWriter(io.writer)w *gzip.Writerw.Write(chunk_of_file)buf

4

2 に答える 2

32

gzip.Writerをそのまま使用して書くことができますio.Writer

例:

package main

import (
    "bytes"
    "compress/gzip"
    "fmt"
    "log"
)

func main() {
    var b bytes.Buffer
    gz := gzip.NewWriter(&b)
    if _, err := gz.Write([]byte("YourDataHere")); err != nil {
        log.Fatal(err)
    }
    if err := gz.Close(); err != nil {
        log.Fatal(err)
    }
    fmt.Println(b.Bytes())
}

遊び場に行く

圧縮レベル (デフォルトは から -1 compress/flate) を設定する場合は、 を使用できますgzip.NewWriterLevel

于 2013-10-09T08:51:29.183 に答える