• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >Golang > Golang使用zlib压缩和解压缩字符串

Golang使用zlib压缩和解压缩字符串

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了golang 字符串拼接,golang 字符串,golang 字符串截取,golang 字符串长度,golang 字符串数组等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

在python的时候就习惯使用zlib进行网页压缩。 golang下同样使用zlib进行压缩解压缩。  zlib官方给出的方法很简单,这里权当一个补充.

zlib.NewWriter() 只能传递 []byte类型数据.   NewWriterLevel 可以传递压缩的等级.

package main
 
import (
 "bytes"
 "compress/zlib"
 "fmt"
 "io"
)
 
func main() {
 var in bytes.Buffer
 b := []byte(`xiorui.cc`)
 w := zlib.NewWriter(&in)
 w.Write(b)
 w.Close()
 
 var out bytes.Buffer
 r, _ := zlib.NewReader(&in)
 io.Copy(&out, r)
 fmt.Println(out.String())
 
}
</div>

库包地址

import "compress/zlib"

写入

func NewWriter
 
  func NewWriter(w io.Writer) *Writer

</div>

读取压缩的数据

func NewReader
 
  func NewReader(r io.Reader) (io.ReadCloser, error)
</div>

设置压缩等级,并压缩数据

func NewWriterLevel(w io.Writer, level int) (io.WriteCloser, os.Error)

下面是几个级别.

const (
    NoCompression = 0
    BestSpeed   = 1
 
    BestCompression  = 9
    DefaultCompression = -1
)
 
const (
  NoCompression   = flate.NoCompression
  BestSpeed     = flate.BestSpeed
  BestCompression  = flate.BestCompression
  DefaultCompression = flate.DefaultCompression
)

</div>

写入数据

func (*Writer) Write
 
  func (z *Writer) Write(p []byte) (n int, err error)
</div>

关闭

func (*Writer) Close
 
  func (z *Writer) Close() error
</div>

Golang zlib压缩的效率和性能都还可以, 毕竟rsync也在用这个压缩算法。  其实zlib和gzip对比,貌似用gzip的多一点。 比如nginx的gzip压缩. 以前看过国外一个帖子,是说zlib比gzip更适合那种速度跟压缩效果均衡的场景。

</div>

您可能想查找下面的文章:

  • Golang使用zlib压缩和解压缩字符串
  • Golang编程实现删除字符串中出现次数最少字符的方法

相关文章

  • go语言里包的用法实例
  • Go语言实现socket实例
  • Go语言的代码组织结构详细介绍
  • 简单讲解Go程序中使用MySQL的方法
  • go语言执行等待直到后台goroutine执行完成实例分析
  • golang语言中for循环语句用法实例
  • PHP与Go语言之间的通信详解
  • 利用Go语言搭建WebSocket服务端方法示例
  • go语言操作redis连接池的方法
  • Go语言eclipse环境搭建图文教程

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • go语言实现处理表单输入
    • Go语言中struct的匿名属性特征实例分析
    • go语言接口用法实例分析
    • Go语言中更优雅的错误处理
    • go语言实现的memcache协议服务的方法
    • Go语言的队列和堆栈实现方法
    • Go语言中转换JSON数据简单例子
    • Go语言map用法实例分析
    • golang针对map的判断,删除操作示例
    • Go语言中的if条件语句使用详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有