Maison >développement back-end >Golang >Comment puis-je lire le contenu d'un fichier Tar sous forme de chaînes dans Go ?

Comment puis-je lire le contenu d'un fichier Tar sous forme de chaînes dans Go ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-04 08:58:15326parcourir

How Can I Read the Contents of a Tar File as Strings in Go?

Lecture du contenu des fichiers Tar sous forme de chaînes

Lorsque vous travaillez avec des fichiers tar, vous pouvez rencontrer le besoin d'accéder au contenu de leurs fichiers sans les décompresser sur le disque. Pour ce faire, vous pouvez exploiter la fonctionnalité fournie par le package archive/tar dans la bibliothèque standard Go.

Revoyons l'exemple de code que vous avez fourni :

package main

import (
    "archive/tar"
    "fmt"
    "io"
    "log"
    "os"
    "bytes"
    "compress/gzip"
)

func main() {
    file, err := os.Open("testtar.tar.gz")

    archive, err := gzip.NewReader(file)

    if err != nil {
        fmt.Println("There is a problem with os.Open")
    }
    tr := tar.NewReader(archive)

    for {
        hdr, err := tr.Next()
        if err == io.EOF {
            break
        }
        if err != nil {
            log.Fatal(err)
        }

        fmt.Printf("Contents of %s:\n", hdr.Name)
    }
}

Le but est de modifier ce code pour lire le contenu des fichiers dans le fichier tar et les imprimer sous forme de chaînes. Pour y parvenir, nous pouvons traiter le tar.Reader comme un io.Reader pour chaque fichier auquel nous voulons accéder.

Tout d'abord, nous obtiendrons l'entrée de fichier suivante en utilisant h, _ := tr.Next( ). Ensuite, nous pouvons lire tout le contenu du fichier dans une tranche d'octets avec bs, _ := ioutil.ReadAll(tr) et le convertir en chaîne avec s := string(bs).

Alternativement, si vous avez besoin de lire le contenu ligne par ligne, vous pouvez utiliser un scanner comme suit :

s := bufio.NewScanner(tr)
for s.Scan() {
    l := s.Text()
    // ...do something with the line l
}

if s.Err() != nil {
    // handle any errors encountered while reading
}

En employant ces techniques, vous pouvez accéder et lire de manière transparente le contenu des fichiers tar comme chaînes, vous permettant de travailler et de traiter efficacement leurs 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