import "compress/zlib"
RFC 1950で定義されているzlib形式圧縮ファイルの読み書きを実装しています。
読み込み時に解凍し、書き込み時に圧縮を行うフィルターを提供します。次の例ではバッファに圧縮データを書き込みます。
var b bytes.Buffer
w, err := zlib.NewWriter(&b)
w.Write([]byte("hello, world\n"))
w.Close()
次に、それを読み戻します。
r, err := zlib.NewReader(&b) io.Copy(os.Stdout, r) r.Close()
パッケージファイル
reader.go writer.go
定数
これら定数はflateパッケージからコピーされているため、 “compress/zlib”をインポートしているコードでは”compress/flate”をインポートする必要はありません。
const (
NoCompression = flate.NoCompression
BestSpeed = flate.BestSpeed
BestCompression = flate.BestCompression
DefaultCompression = flate.DefaultCompression
)
変数
var ChecksumError os.Error = os.ErrorString("zlib checksum error")
var HeaderError os.Error = os.ErrorString("invalid zlib header")
var UnsupportedError os.Error = os.ErrorString("unsupported zlib format")
NewReader関数
func NewReader(r io.Reader) (io.ReadCloser, os.Error)
NewReaderは、rからデータを解凍しながら読み込みを行う新しいio.ReadCloserを作成します。実装しているバッファはrから必要 以上のデータを読み込む可能性があります。使い終わったら呼び出し側の責任でReadCloserのCloseを呼び出してください。
NewWriter関数
func NewWriter(w io.Writer) (io.WriteCloser, os.Error)
NewWriterは、デフォルトの圧縮レベルでNewWriterLevelを呼びます。
NewWriterLevel関数
func NewWriterLevel(w io.Writer, level int) (io.WriteCloser, os.Error)
NewWriterLevelは、圧縮データをwへ書き込む新しいio.WriteCloserを作成します。使い終わったら呼び出し側の責任で WriteCloserのCloseを呼び出してください。levelは圧縮レベルで、DefaultCompression(デフォルト圧縮)、 NoCompression(圧縮無し)、またはBestSpeed(速度最優先)からBestCompression(圧縮率最優先)の整数値を指定す ることが可能です。
バグ
zlibパッケージにはFDICTフラグは実装されていません。
Trackback URL
Comments