> 백엔드 개발 > Golang > Go에서 Tar 파일의 내용을 문자열로 어떻게 읽을 수 있나요?

Go에서 Tar 파일의 내용을 문자열로 어떻게 읽을 수 있나요?

Barbara Streisand
풀어 주다: 2024-12-04 08:58:15
원래의
308명이 탐색했습니다.

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

Tar 파일의 내용을 문자열로 읽기

tar 파일 작업 시 압축을 풀지 않고 파일 내용에 액세스해야 할 수도 있습니다. 디스크에. 이를 위해 Go 표준 라이브러리의 archive/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 파일 내의 파일 내용을 읽고 문자열로 인쇄하는 코드입니다. 이를 달성하기 위해 tar.Reader를 액세스하려는 각 파일에 대한 io.Reader로 처리할 수 있습니다.

먼저 h, _ := tr.Next(를 사용하여 다음 파일 항목을 가져옵니다. ). 그런 다음 bs, _ := ioutil.ReadAll(tr)을 사용하여 파일의 전체 내용을 바이트 슬라이스로 읽고 s := string(bs)을 사용하여 문자열로 변환할 수 있습니다.

또는, 내용을 한 줄씩 읽어야 하는 경우 다음과 같이 스캐너를 사용할 수 있습니다.

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
}
로그인 후 복사

이러한 기술을 사용하면 원활하게 액세스하고 tar 파일의 내용을 문자열로 읽어 데이터를 효과적으로 작업하고 처리할 수 있습니다.

위 내용은 Go에서 Tar 파일의 내용을 문자열로 어떻게 읽을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿