美文网首页go语言
golang中compress/lzw包

golang中compress/lzw包

作者: ljh123 | 来源:发表于2018-12-07 13:35 被阅读0次

lzw包中提供压缩和解压两种操作
函数列表:

func NewReader(r io.Reader, order Order, litWidth int) io.ReadCloser
func NewWriter(w io.Writer, order Order, litWidth int) io.WriterCloser

(1)压缩
func NewWriter(w io.Writer, order Order, litWidth int) io.WriterCloser

参数列表:
1)w  输出压缩数据的io.Wrier
2)order lzw数据流的位顺序,有LSB和MSB
3)litWidth  字面码的位数,必须在[2,8]范围内,一般位8
返回值:一个io.WriteCloser,可以将压缩的数据写入其下层的w,调用者使用后要将其关闭
功能说明:
NewWriter创建一个新的io.WriterCloser。它将数据压缩后写入w。调用者要在写入结束之后调用返回io.WriterCloser的Close函数关闭。litWidth是字面码的位数,必须在[2,8]范围内,一般为8。

(2)解压
func NewReader(r io.Reader, order Order, litWidth int) io.ReadCloser

参数列表:
1)r    待解压的数据
2)order lzw数据流的位顺序,有LSB和MSB
3)litWidth  字面码的位数,必须在[2,8]范围内,一般为8
返回值:一个解压过的io.ReadCloser,调用者使用后要将其关闭
功能说明:NewReader创建一个新的io.ReadCloser。它从r读取并解压数据。调用者要在读取完之后调用返回io.ReadCloser的Close函数关闭。litWidth是字面码的为数,必须在[2,8]范围内,一般为8.

demo

package main

import (
    "bytes"
    "compress/lzw"
    "fmt"
    "io"
    "os"
)

func main() {
    // 一个缓冲区存储压缩的内容
    buf := bytes.NewBuffer(nil)

    w := lzw.NewWriter(buf, lzw.LSB, 8)
    // 写入待压缩内容
    w.Write([]byte("compress/flate\n"))
    w.Close()
    fmt.Println(buf)

    // 解压
    r := lzw.NewReader(buf, lzw.LSB, 8)
    defer r.Close()
    io.Copy(os.Stdout, r)
}

相关文章

  • golang中compress/lzw包

    lzw包中提供压缩和解压两种操作函数列表: (1)压缩func NewWriter(w io.Writer, or...

  • golang中compress/flate包

    官方标准库对flate包的定义是:flate包实现了deflate压缩数据格式,参见RFC 1951。gzip包和...

  • golang中compress/gzip

    go标准库的gzip包中提供了两个操作,分别是压缩和解压常量和变量 (1)压缩 demo (2)解压 demo

  • golang中compress/bzip2

    一、bzip2的简介bzip2包实现bzip2的解压缩,bzip2是对单个文件进行压缩,可以先进行tar归档,然后...

  • Golang标准库——compress

    flate gzip bzip2 lzw zlib flate flate包实现了deflate压缩数据格式,参见...

  • GIF 与 LWZ

    在讲 LZW 在 GIF 中的应用前,有必要先简单的过一下 LZW 算法。 LZW算法又叫“串表压缩算法”就是通过...

  • LZW压缩算法

    参考链接:超级简单的数据压缩算法—LZW算法压缩算法——lzw算法实现LZW算法 LZW 压缩算法正确图解

  • golang中encoding/pem包

    1、golang中pem包是什么?2、golang中的pem包为我们开发者提供了哪些功能?3、我们可以用pem包做...

  • 006-golang中XML文件的处理

    golang中XML文件的处理 一.概述 在golang中 包"encoding/xml" 提供了对xml文件的...

  • golang中builtin包

    1、介绍builtin包中文官方标准库给出的介绍:builtin包为Go预声明标识符提供了文档。2、builtin...

网友评论

    本文标题:golang中compress/lzw包

    本文链接:https://www.haomeiwen.com/subject/talthqtx.html