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!