`

Go调用zlib实现压缩与解压缩

 
阅读更多

http://studygolang.com/articles/2522

package main

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

//进行zlib压缩
func DoZlibCompress(src []byte) []byte {
    var in bytes.Buffer
    w := zlib.NewWriter(&in)
    w.Write(src)
    w.Close()
    return in.Bytes()
}

//进行zlib解压缩
func DoZlibUnCompress(compressSrc []byte) []byte {
    b := bytes.NewReader(compressSrc)
    var out bytes.Buffer
    r, _ := zlib.NewReader(b)
    io.Copy(&out, r)
    return out.Bytes()
}

func main() {
    buff := []byte{120, 156, 202, 72, 205, 201, 201, 215, 81, 40, 207,
        47, 202, 73, 225, 2, 4, 0, 0, 255, 255, 33, 231, 4, 147}
    b := bytes.NewReader(buff)
    r, err := zlib.NewReader(b)
    if err != nil {
        panic(err)
    }
    io.Copy(os.Stdout, r)
    r.Close()

    zip := DoZlibCompress([]byte("hello, world\n"))
    fmt.Println(zip)
    fmt.Println(string(DoZlibUnCompress(zip)))
}

 

 

分享到:
评论

相关推荐

    ZLIB解压缩STM32工程实例

    在实现ZLIB的压缩和解压缩时,可能需要使用这些API来与外部设备交互,如读写存储器或通过UART发送接收数据。 6. **d.bat、ver1.0.hex和读我.txt** - "d.bat"可能是编译或烧录的批处理脚本,用于自动化构建过程。 ...

    zlib1.dll实现压缩解压缩

    开发者可以通过调用这些接口实现数据的压缩和解压缩操作。例如,可以使用`compress2()`函数进行压缩,`uncompress()`函数进行解压缩,这两个函数分别接收原始数据、目标缓冲区、缓冲区大小以及压缩级别等参数。 在...

    基本Zlib的压缩/解压缩组件(同时支持API接口和COM接口

    MsgBox "解压缩前字节数:" & (UBound(unpacked_bytes) - LBound(unpacked_bytes) + 1) Call UnPackStream(unpacked_bytes) MsgBox "解压缩后字节数:" & LenB(unpacked_bytes) str = unpacked_bytes 'StrConv...

    vb使用Zlib进行zip解压缩的源码

    在VB中集成Zlib,可以实现直接在代码中对ZIP文件进行解压缩,提高了程序的稳定性和自给自足性。 Zlib库主要提供了数据压缩和解压缩的功能,广泛应用于网络传输、文件存储等领域。ZIP格式是常见的压缩文件格式,由多...

    ucos移植zlib和zip文件解压缩

    本篇文章将详细介绍如何在UCOS系统中移植ZLIB库以及实现ZIP文件的解压缩。 首先,ZLIB是一个开源的压缩库,它提供了数据的无损压缩和解压缩功能,常用于GIF、PNG等文件格式。移植ZLIB到UCOS涉及到以下几个关键步骤...

    C调用zlib进行文件压缩

    在本篇文章中,我们将深入探讨如何在C语言中调用zlib库来实现文件的压缩功能,并了解相关的知识点。 首先,让我们来理解zlib库的核心功能。zlib库提供了许多接口,用于压缩和解压缩数据流。其中,`compress2()` 和 ...

    qt调用zlib实例

    本文将深入探讨如何在Qt项目中调用Zlib库进行数据压缩和解压缩操作,以实现高效的文件处理功能。 首先,我们需要了解Zlib库的基本概念。Zlib是由Jean-loup Gailly和Mark Adler开发的,它提供了数据压缩和解压缩算法...

    C++ 基于ZLIB压缩库的数据或文件的压缩与解压缩小程序.zip

    本项目“C++ 基于ZLIB压缩库的数据或文件的压缩与解压缩小程序”正是利用了ZLIB库来实现这个功能。 ZLIB库是基于DEFLATE算法的,这是一种混合了LZ77(一种字典压缩方法)和霍夫曼编码(一种熵编码方法)的高效压缩...

    C++ Zlib库实现zip文件压缩解压(支持递归压缩)

    本篇文章将详细介绍如何在`C++`中利用`Zlib`库实现对`zip`文件的压缩和解压,并特别关注其支持的递归压缩特性,以及如何将其与自动更新功能结合使用。 首先,我们需要理解`Zlib`库的基本原理。`Zlib`库基于`DEFLATE...

    Zlib压缩解压工具

    Zlib压缩解压工具是一款基于Zlib库的实用程序,用于对数据进行高效压缩和解压缩。Zlib是由Jean-loup Gailly和Mark Adler开发的开源库,它广泛应用于各种软件开发,尤其是在网络传输和文件存储方面。该工具特别适合...

    zlib压缩解压缩工具,包含源代码

    zlib库是一个开源的、跨平台的、无版权限制的数据压缩库,主要用于实现数据的压缩和解压缩。它被广泛应用于网络传输、文件存储、应用程序内部数据压缩等多种场景。zlib库的设计目标是提供高效且灵活的压缩算法,同时...

    基于zlib封装的压缩解压缩lib库

    本文将深入探讨一个基于zlib库封装的压缩解压缩库,它为开发者提供了便捷的API,支持文件和文件夹的压缩与解压缩功能。这个库的编译环境为Visual Studio 2013,适用于Windows平台的开发。 首先,我们来认识zlib库。...

    C# 使用zlib 库压缩文件

    C# 调用Zlib库实现文件的压缩,可以把常见类型的文件压缩成 zlib 格式的文件,主要实现了一个函数 public void ZipFile(string fileToZip, string zipedFile, int compressionLevel, int blockSize); 用户...

    PB12.5 调用zlib对blob数据压缩

    总结来说,PB12.5调用zlib对Blob数据进行压缩是一种高效的数据处理手段,通过集成zlib库,开发者可以轻松地在PB环境中实现数据的压缩和解压缩,从而优化存储和传输性能。正确理解和应用这一技术,对于提升应用程序的...

    linux环境下利用zlib库实现压缩目录的c++程序

    在Linux环境下,使用C++编写一个能够利用zlib库压缩目录至.zip文件的程序是一项实用技能。zlib库是广泛使用的开源压缩库,它提供了多种数据压缩算法,包括DEFLATE,这是.zip文件格式常用的算法。以下将详细介绍如何...

    Qt之调用zlib

    将zlib与Qt结合使用,可以在Qt应用中实现高效的数据压缩和解压缩功能。 在"Qt之调用zlib"这个主题中,我们将探讨如何在Qt项目中集成和使用zlib库。首先,你需要确保已经下载了zlib库,并将其包含到你的Qt项目中。这...

    MFC Zlib 解压和压缩简单文件夹 亲测可用 简单类

    **四、MFC中实现解压缩** 1. **创建解压缩类**:同样,我们可以创建一个`CUnzip`类,包含解压缩文件的方法。`unzip.h`和`unzip.cpp`文件可能包含了此类的定义和实现,它们定义了解压缩文件的接口。 2. **解压缩...

    使用zlib实现的多级文件夹的压缩

    在Windows环境下,`.lib`文件用于链接到`zlib`的功能,使得你的程序可以直接调用`zlib`的压缩和解压缩函数。`zlibd.lib`是调试版本,包含额外的调试信息,适用于开发阶段;而`zlib.lib`是发布版本,体积更小,适用于...

    STM32(或其它国产单片机)移植Zlib进行数据压缩功能

    Zlib主要用在上位机,因为无论是Windows、Linux、MAC都有足够的内存,单片机RAM非常小,源码中MAX_WBITS默认是15,需要两个32k才能正常工作,compress2也只能实现一次数据传入压缩。都不适合单片机使用。我在移植时...

Global site tag (gtag.js) - Google Analytics