これらの定数は flate パッケージからコピーされているので, "compress/zlib" をインポートするコードは "compress/flate" をインポートする必要はありません。
const ( NoCompression = flate.NoCompression BestSpeed = flate.BestSpeed BestCompression = flate.BestCompression DefaultCompression = flate.DefaultCompression HuffmanOnly = flate.HuffmanOnly )
var ( // ErrChecksum は,無効なチェックサムを持つ ZLIB データを読み込むと返されます。 ErrChecksum = errors.New("zlib: invalid checksum") // ErrDictionary は,無効な辞書を持つ ZLIB データを読み込むとが返されます。 ErrDictionary = errors.New("zlib: invalid dictionary") // ErrHeader は,無効なヘッダを持つ ZLIB データを読み込むと返されます。 ErrHeader = errors.New("zlib: invalid header") )
func NewReader(r io.Reader) (io.ReadCloser, error)
NewReader は新しい ReadCloser を作成します。 返り値の ReadCloser からの読み取りは, r からデータを読み取り,解凍します。 r が io.ByteReader を実装していない場合,解凍器は r から必要以上のデータを読み取る可能性があります。 完了したら ReadCloser の Close を呼び出すのは呼び出し側の責任です。
NewReader から返される ReadCloser も Resetter を実装します。
▹ 例
func NewReaderDict(r io.Reader, dict []byte) (io.ReadCloser, error)
NewReaderDict は NewReader に似ていますが,プリセット辞書を使用します。 圧縮データが辞書を参照していない場合, NewReaderDict は辞書を無視します。 圧縮データが別の辞書を参照している場合, NewReaderDict は ErrDictionary を返します。
NewReaderDict から返される ReadCloser も Resetter を実装します。
Resetter は, NewReader または NewReaderDict によって返された ReadCloser をリセットして,新しい内部の Reader に切り替えます。 これにより,新しく割り当てる代わりに ReadCloser を再利用できます。
type Resetter interface { // Reset はバッファされたデータを破棄し, // あたかも引数のリーダーで新しく初期化されたかのように Resetter をリセットします。 Reset(r io.Reader, dict []byte) error }
Writer は書き込まれたデータを受け取り,そのデータの圧縮形式を内部の Writer に書き込みます (NewWriter を参照) 。
type Writer struct {
// エクスポートされていないフィールドがあります
}
func NewWriter(w io.Writer) *Writer
NewWriter は新しい Writer を作成します。 返り値の Writer への書き込みは圧縮され, w に書き込まれます。
完了したら Writer の Close を呼び出すのは呼び出し側の責任です。 書き込みはバッファリングされ,閉じるまでフラッシュされないことがあります。
▹ 例
func NewWriterLevel(w io.Writer, level int) (*Writer, error)
NewWriterLevel は NewWriter に似ていますが, DefaultCompression とせずに,圧縮レベルを指定します。
圧縮レベルは, DefaultCompression, NoCompression, HuffmanOnly, または BestSpeed と BestCompression の間の整数値です。 レベルが有効な場合,返されるエラーは nil になります。
func NewWriterLevelDict(w io.Writer, level int, dict []byte) (*Writer, error)
NewWriterLevelDict は NewWriterLevel に似ていますが, 圧縮に使用する辞書を指定します。
辞書は nil かもしれません。 そうでなければ,その内容は Writer が閉じられるまで修正してはなりません。
func (z *Writer) Close() error
Close は Writer を閉じて,書き込まれていないデータを内部の io.Writer にフラッシュしますが,内部の io.Writer は閉じません。
func (z *Writer) Flush() error
Flush は, Writer をその内部の io.Writer にフラッシュします。
func (z *Writer) Reset(w io.Writer)
Reset は, NewWriterLevel または NewWriterLevelDict からの初期状態と同じになるように Writer z の状態を消去しますが,代わりに w に書き込みます。
func (z *Writer) Write(p []byte) (n int, err error)
Write は,内部の io.Writer に圧縮形式の p を書き込みます。 Writer が閉じられるか明示的にフラッシュされるまで,圧縮されたバイトは必ずしもフラッシュされません。