ホームページ > バックエンド開発 > Golang > ディスクに解凍せずに tar ファイルの内容を読み取ります

ディスクに解凍せずに tar ファイルの内容を読み取ります

王林
リリース: 2024-02-09 22:27:21
転載
716 人が閲覧しました

读取 tar 文件的内容而不解压到磁盘

php editor Strawberry は今日、tar ファイルをディスクに解凍せずに内容を読み取るという非常に実用的なテクニックを紹介します。開発プロセス中、tar ファイルを処理する必要があることがよくありますが、tar ファイルをディスクに解凍して読み取ると、多くのディスク領域と時間が消費されます。 PHP の Archive_Tar 拡張機能を使用すると、tar ファイルの内容を直接読み取ることができ、面倒な解凍プロセスを回避し、コードの効率を向上させることができます。続いて、具体的な手順を見ていきましょう!

質問内容

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)
    }
}
ログイン後にコピー

回避策

読み取りたい各ファイルの io.reader として tar.reader を使用するだけです。

リーリー

ファイル全体を文字列として必要な場合:

リーリー

一行ずつ読む必要がある場合は、これの方が良いです:

リーリー

以上がディスクに解凍せずに tar ファイルの内容を読み取りますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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