Heim >Backend-Entwicklung >Golang >Wie kann ich den Inhalt einer TAR-Datei als Strings in Go lesen?

Wie kann ich den Inhalt einer TAR-Datei als Strings in Go lesen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-04 08:58:15257Durchsuche

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

Inhalte von TAR-Dateien als Zeichenfolgen lesen

Wenn Sie mit TAR-Dateien arbeiten, müssen Sie möglicherweise auf deren Dateiinhalte zugreifen, ohne sie zu entpacken auf die Festplatte. Dazu können Sie die Funktionalität des Pakets archive/tar in der Go-Standardbibliothek nutzen.

Sehen wir uns das von Ihnen bereitgestellte Codebeispiel noch einmal an:

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)
    }
}

Das Ziel besteht in der Änderung Verwenden Sie diesen Code, um den Inhalt der Dateien in der TAR-Datei zu lesen und als Zeichenfolgen auszugeben. Um dies zu erreichen, können wir den tar.Reader als io.Reader für jede Datei behandeln, auf die wir zugreifen möchten.

Zuerst erhalten wir den nächsten Dateieintrag mit h, _ := tr.Next( ). Dann können wir den gesamten Inhalt der Datei mit bs, _ := ioutil.ReadAll(tr) in ein Byte-Slice einlesen und ihn mit s := string(bs) in einen String konvertieren.

Alternativ: Wenn Sie den Inhalt Zeile für Zeile lesen müssen, können Sie einen Scanner wie folgt verwenden:

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
}

Durch den Einsatz dieser Techniken können Sie nahtlos auf den Inhalt zugreifen und ihn lesen tar-Dateien als Zeichenfolgen, sodass Sie effektiv mit deren Daten arbeiten und sie verarbeiten können.

Das obige ist der detaillierte Inhalt vonWie kann ich den Inhalt einer TAR-Datei als Strings in Go lesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn