compress

package
v0.0.0-...-91e790a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 22, 2022 License: MIT Imports: 4 Imported by: 0

README

压缩数据

  • 一共两个方法,压缩和解压缩

  • 示例

package main

import (
	"fmt"

	"github.com/ACV-er/gotools/compress"
)

// 重复原字符串
func repeatStr(str string, times int) string {
	var ret string
	for i := 0; i < times; i++ {
		ret += str
	}
	return ret
}

// 文件为测试用

func main() {
	// 原始数据
	src := `{"code":"0","msg":"success","data":{"email":"", "message":"原始数据,一个字符串,一个待压缩的字符串,一个待压缩的数组,一个待压缩的map"}}`

	fmt.Println("原始数据: ", src)

	ret, _ := compress.Compress(compress.COMPRESS_GZIP, []byte(src))

	// base64后的压缩数据
	fmt.Println("压缩后数据: ", ret)

	// 解压缩
	ret_uncompress, _ := compress.UnCompress(compress.COMPRESS_GZIP, ret)

	fmt.Println("还原后数据: ", string(ret_uncompress))
	fmt.Printf("还原后数据等于原始数据: %t \n", string(ret_uncompress) == src)

	// 重复数据压缩率比较高
	src = repeatStr(src, 1000)
	fmt.Println("原始数据长度: ", len(src))

	ret, _ = compress.Compress(compress.COMPRESS_GZIP, []byte(src))
	fmt.Println("压缩后数据长度: ", len(ret))

	ret_uncompress, _ = compress.UnCompress(compress.COMPRESS_GZIP, ret)
	fmt.Printf("还原后数据等于原始数据: %t \n", string(ret_uncompress) == src)
}

Documentation

Index

Constants

View Source
const COMPRESS_GZIP = 1

Variables

This section is empty.

Functions

func Compress

func Compress(mode int, data []byte) (ret string, err error)

gzip压缩,[]byte -> gzip(bin) -> base64(string) 暂时只支持gzip

func UnCompress

func UnCompress(mode int, data string) (ret []byte, err error)

gzip解压缩,base64(string) -> gzip(bin) -> []byte

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL