>  기사  >  백엔드 개발  >  디스크에 추출하지 않고 tar 파일의 내용 읽기

디스크에 추출하지 않고 tar 파일의 내용 읽기

王林
王林앞으로
2024-02-09 22:27:21714검색

读取 tar 文件的内容而不解压到磁盘

PHP 편집기 Strawberry는 오늘 매우 실용적인 기술을 소개합니다. 즉, 디스크에 압축을 풀지 않고 tar 파일의 내용을 읽는 것입니다. 개발 과정에서 tar 파일을 처리해야 하는 경우가 종종 있는데, 이를 디스크에 압축을 푼 후 읽는 데 많은 디스크 공간과 시간이 소요됩니다. PHP의 Archive_Tar 확장을 사용하면 tar 파일의 내용을 직접 읽을 수 있고 지루한 압축 해제 과정을 피하고 코드 효율성을 높일 수 있습니다. 다음으로 구체적인 단계에 대해 알아보겠습니다!

질문 내용

tar 파일의 파일을 반복할 수 있었지만 이러한 파일의 내용을 문자열로 읽는 방법을 생각해 본 적이 없습니다. 파일 내용을 문자열로 인쇄하는 방법을 알고 싶습니다.

이것은 내 코드입니다

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

해결 방법

읽고 싶은 각 파일에 대해 tar.reader를 io.reader로 사용하세요.

으아아아

전체 파일이 문자열로 필요한 경우:

으아아아

한 줄씩 읽어야 한다면 다음이 더 좋습니다:

으아아아

위 내용은 디스크에 추출하지 않고 tar 파일의 내용 읽기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제