Fork me on GitHub
随笔 - 213  文章 - 13  trackbacks - 0
<2017年5月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910


专注即时通讯及网游服务端编程
------------------------------------
Openresty 官方模块
Openresty 三方模块
------------------------------------
本博收藏大部分文章为转载,并在文章开头给出了原文出处,如有再转,敬请保留相关信息,这是大家对原创作者劳动成果的自觉尊重!!如为您带来不便,请于本博下留言,谢谢配合。

常用链接

留言簿(1)

随笔分类

随笔档案

相册

Awesome

Blog

Book

GitHub

Link

搜索

  •  

积分与排名

  • 积分 - 125985
  • 排名 - 176

最新评论

阅读排行榜

func main() {

    size :
= 1
    datasSlice :
= make([][]byte, size)
    
for i := 0; i < size; i++ {
        datasSlice[i], _ 
= ioutil.ReadFile("images/" + strconv.Itoa(i+1+ ".jpg")
        fmt.Println(
"raw size:", strconv.Itoa(i)+".jpg :", len(datasSlice[i]))
    }

    var b bytes.Buffer
    w :
= gzip.NewWriter(&b)
    defer w.Close()

    
for i := 0; i < size; i++ {
        w.Write(datasSlice[i])
    }
    w.Flush()
    fmt.Println(
"gzip size:", len(b.Bytes()))

    r, _ :
= gzip.NewReader(&b)
    defer r.Close()
    undatas, _ :
= ioutil.ReadAll(r)
    fmt.Println(
"ungzip size:", len(undatas))

}

http://blog.csdn.net/yxw2014/article/details/43017361
func (b *MyBucket) Gzip(data []byte) []byte {

    var res bytes.Buffer
    gz, _ := gzip.NewWriterLevel(&res, 7)
    _, err := gz.Write(data)
    if err != nil {
        Log4e(err)
    } else {
        gz.Close()
    }
    return res.Bytes()

}


gzip压缩的过程中,Write之后一定要及时Close,不能defer, 这样才能flush, 否则得不到任何数据
posted on 2017-05-05 10:05 思月行云 阅读(609) 评论(0)  编辑 收藏 引用 所属分类: Golang

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理