gzip-Komprimierung im Arbeitsspeicher in Go

English Deutsch

In Go kannst du die eingebaute gzip-Bibliothek zusammen mit bytes.Buffer verwenden, um ein []byte zu komprimieren und ein []byte mit gzip-komprimierten Daten zu erhalten:

go_gzip_inmemory_snippet.go
content := "Hello World!"
buf := &bytes.Buffer{}
gzWriter := gzip.NewWriter(buf)
gzWriter.Write([]byte(content))
gzWriter.Close()

Dieses vollständige Beispiel komprimiert die Daten im Arbeitsspeicher und schreibt sie danach in eine Datei namens text.txt.gz. Beachte, dass du auch direkt in eine Datei gzip-komprimieren kannst und wenn du nichts anderes mit den komprimierten Daten machen musst, kannst du auch unseren vorherigen Beitrag How to write to gzipped file in Go ansehen.

go_gzip_inmemory_main.go
package main

import (
    "compress/gzip"
    "os"
)

func main() {
    content := "Hello World!"
    // gzip initialisieren
    buf := &bytes.Buffer{}
    gzWriter := gzip.NewWriter(buf)
    gzWriter.Write([]byte(content))
    gzWriter.Close()
    // Buffer konvertieren in
    ioutil.WriteFile("test.txt.gz", buf.Bytes(), 0644)
}

Du kannst zcat test.txt.gz verwenden, um zu sehen, dass der Inhalt korrekt in die Datei geschrieben wurde.


Check out similar posts by category: Go