Maison >développement back-end >Golang >Comment puis-je utiliser le package « compress/gzip » de Go pour une compression et une décompression efficaces des fichiers ?

Comment puis-je utiliser le package « compress/gzip » de Go pour une compression et une décompression efficaces des fichiers ?

DDD
DDDoriginal
2024-11-30 06:14:10301parcourir

How Can I Use Go's

Compression de fichiers Gzip dans Go avec le package "compress/gzip"

La compression de fichiers est souvent essentielle pour optimiser le transfert et le stockage de données. Dans Go, le package « compress/gzip » fournit une solution pratique pour la compression gzip. Voici comment utiliser ce package :

Compresser un fichier

import (
    "bytes"
    "compress/gzip"
    "io"
    "os"
)

func compressFile(sourceFile, compressedFile string) error {
    input, err := os.ReadFile(sourceFile)
    if err != nil {
        return err
    }

    var b bytes.Buffer
    w := gzip.NewWriter(&b)
    if _, err := w.Write(input); err != nil {
        return err
    }
    if err := w.Close(); err != nil {
        return err
    }

    if err := os.WriteFile(compressedFile, b.Bytes(), 0644); err != nil {
        return err
    }

    return nil
}

Lecture directe d'un fichier compressé

Pour lire un fichier compressé directement, vous pouvez utiliser le gzip.NewReader fonction :

func readCompressedFile(compressedFile string) error {
    f, err := os.Open(compressedFile)
    if err != nil {
        return err
    }
    defer f.Close()

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

    if _, err := io.Copy(os.Stdout, r); err != nil {
        return err
    }

    return nil
}

En utilisant ces fonctions, vous pouvez facilement compresser et décompresser des fichiers dans Go, vous permettant d'optimiser efficacement le transfert et le stockage de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn