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 중국어 웹사이트의 기타 관련 기사를 참조하세요!