Heim > Artikel > Backend-Entwicklung > Lesen Sie den Inhalt einer TAR-Datei, ohne sie auf die Festplatte zu extrahieren
php-Editor Strawberry stellt Ihnen heute eine sehr praktische Technik vor – das Lesen des Inhalts einer TAR-Datei, ohne sie auf die Festplatte zu dekomprimieren. Während des Entwicklungsprozesses müssen wir häufig TAR-Dateien verarbeiten, aber das Dekomprimieren auf die Festplatte und das anschließende Lesen nimmt viel Speicherplatz und Zeit in Anspruch. Durch die Verwendung der Archive_Tar-Erweiterung von PHP können wir den Inhalt der TAR-Datei direkt lesen, den mühsamen Prozess der Dekomprimierung vermeiden und die Effizienz des Codes verbessern. Als Nächstes lernen wir die einzelnen Schritte kennen!
Ich konnte die Dateien in einer TAR-Datei durchlaufen, habe aber nie herausgefunden, wie ich den Inhalt dieser Dateien als Zeichenfolgen lesen kann. Ich möchte wissen, wie man den Inhalt einer Datei als Zeichenfolge druckt.
Das ist mein Code
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) } }
Verwenden Sie einfach tar.reader als io.reader für jede Datei, die Sie lesen möchten.
tr := tar.newreader(r) // get the next file entry h, _ := tr.next()
Wenn Sie die gesamte Datei als String benötigen:
// read the complete content of the file h.name into the bs []byte bs, _ := ioutil.readall(tr) // convert the []byte to a string s := string(bs)
Wenn Sie Zeile für Zeile lesen müssen, ist dies besser:
// create a Scanner for reading line by line s := bufio.NewScanner(tr) // line reading loop for s.Scan() { // read the current last read line of text l := s.Text() // ...and do something with l } // you should check for error at this point if s.Err() != nil { // handle it }
Das obige ist der detaillierte Inhalt vonLesen Sie den Inhalt einer TAR-Datei, ohne sie auf die Festplatte zu extrahieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!