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) を使用して文字列に変換できます。
または、次のようにします。内容を 1 行ずつ読み取る必要がある場合は、次のようにスキャナーを使用できます。
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 中国語 Web サイトの他の関連記事を参照してください。