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
Libérer: 2024-12-04 08:58:15
original
305 Les gens l'ont consulté

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)
    }
}
Copier après la connexion

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
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal