golangの圧縮方法

WBOY
リリース: 2023-05-16 17:51:38
オリジナル
805 人が閲覧しました

Golang は、データの圧縮を含む多くの操作をサポートする非常に人気のあるプログラミング言語です。この記事では、Golang が圧縮を実装する方法のいくつかを検討します。

Golang の標準パッケージには、「compress/flate」と「compress/gzip」という 2 つの圧縮ライブラリが提供されています。次に、これら 2 つのライブラリの使用法を調べます。

最初のライブラリ「compress/flate」は、データの圧縮に使用できます。このライブラリが提供する圧縮方法は小さなデータに適しており、あらゆる種類のデータを圧縮できます。 「compress/flate」を使用した例を次に示します。

package main

import (
    "compress/flate"
    "bytes"
    "fmt"
)

func compress(data []byte) []byte {
    var b bytes.Buffer
    w, _ := flate.NewWriter(&b, flate.BestCompression)
    w.Write(data)
    w.Close()
    return b.Bytes()
}

func main() {
    data := []byte("Hello, world!")
    compressed := compress(data)
    fmt.Printf("Compressed data: %v
", compressed)
}
ログイン後にコピー

上の例では、入力データをバイト配列に圧縮する「compress」という名前の関数を定義しました。この関数は、「compress/flate」の「NewWriter」関数を使用して新しいコンプレッサー インスタンスを作成します。「BestCompression」は最高の圧縮率を指定します。次に、「Write」関数を使用してデータをコンプレッサーに書き込み、「Close」関数を使用してコンプレッサーを閉じます。最後に、圧縮された結果を返します。

この圧縮関数の使用方法を示す「main」という名前の関数も定義します。 「main」関数では、文字列「Hello, world!」をバイト配列に変換し、「compress」関数を使用して圧縮します。最後に、圧縮結果を出力します。

次に、2 番目のライブラリ「compress/gzip」を調べます。 「compress/gzip」はデータの圧縮または解凍に使用されます。使い方は「圧縮/フラット化」と似ています。次に、「compress/gzip」を使用した例です。

package main

import (
    "bytes"
    "compress/gzip"
    "fmt"
)

func compress(data []byte) []byte {
    var b bytes.Buffer
    w := gzip.NewWriter(&b)
    w.Write(data)
    w.Close()
    return b.Bytes()
}

func main() {
    data := []byte("Hello, world!")
    compressed := compress(data)
    fmt.Printf("Compressed data: %v
", compressed)
}
ログイン後にコピー

上の例では、入力データをバイト配列に圧縮する「compress」という関数を定義します。この関数は、「compress/gzip」の「NewWriter」関数を使用して新しいコンプレッサー インスタンスを作成します。次に、「Write」関数を使用してデータをコンプレッサーに書き込み、「Close」関数を使用してコンプレッサーを閉じます。最後に、圧縮された結果を返します。

この圧縮関数の使用方法を示す「main」という名前の関数も定義します。 「main」関数では、文字列「Hello, world!」をバイト配列に変換し、「compress」関数を使用して圧縮します。最後に、圧縮結果を出力します。

概要

Golang は、データの圧縮と解凍に「compress/flate」と「compress/gzip」という 2 つのライブラリを使用します。これらのライブラリは、さまざまな種類のデータを圧縮および解凍するためのシンプルかつ効率的な方法を提供します。これらのライブラリを使用してデータを圧縮する場合は、データ サイズと必要な圧縮率を考慮してください。

以上がgolangの圧縮方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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