ホームページ > バックエンド開発 > 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) を使用して文字列に変換できます。

または、次のようにします。内容を 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート