私はtarファイルの中でファイルをループすることができましたが、それらのファイルの内容を文字列として読み取る方法に固執しています。私は文字列としてファイルの内容を印刷する方法を知りたいですか?解凍せずにgolangでtarファイルの内容を読む
これはちょうどあなたが読みたいファイルごとにio.Readerとしてtar.Readerを使用
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)
}
}
これは正しいタイプのコンテンツを読み取りますが、すべてがuint8タイプのスライスだけです。実際のコンテンツはありません。 –
あなたは、リーダーがそのタイプを知ることは期待できません。そのコンテンツを処理するのはあなたの責任です。 – AJPennster
@AJPennsterあなたは簡単な変換方法を知っていますか?スライス要素が文字列の行を返さない方法として混乱していますが、intです。私は変換について行く方法はありません。 –