在不解压的情况下读取 Tar 文件内容
为了读取 tar 文件的内容而不将其解压到磁盘,必须使用tar.Reader 作为单个文件的 io.Reader。实现方式如下:
package main import ( "archive/tar" "fmt" "io" "io/ioutil" "log" "os" "bufio" ) func main() { file, err := os.Open("testtar.tar.gz") if err != nil { fmt.Println("There is a problem with os.Open") } tr := tar.NewReader(file) // Get the next file entry h, _ := tr.Next() // Read the complete content of the file into a byte slice bs, _ := ioutil.ReadAll(tr) // Convert the byte slice to a string contents := string(bs) fmt.Printf("Contents of %s:\n%s", h.Name, contents) }
或者,如果您需要逐行访问文件内容:
s := bufio.NewScanner(tr) // Line reading loop for s.Scan() { l := s.Text() // Perform operations on the line } if err := s.Err(); err != nil { // Handle error }
以上是如何在不解压的情况下读取Tar文件的内容?的详细内容。更多信息请关注PHP中文网其他相关文章!