金狮镖局 Design By www.egabc.com

我就废话不多说了,大家还是直接看代码吧~

package main
// 引入所需包
import (
  "os"
  "compress/gzip"
  "io/ioutil"
  "fmt"
)
// gzip文件
var fn = "./113.200.251.66_1510825558_A6D39783B05943D8ACA64F397748CF1B_vdn.gz"
func main() {
  println(fn)
  // 打开本地gz格式压缩包
  fr, err := os.Open(fn)
  if err != nil {
    panic(err)
  } else {
    println("open file success!")
  }
  // defer: 在函数退出时,执行关闭文件
  defer fr.Close()
  // 创建gzip文件读取对象
  gr, err := gzip.NewReader(fr)
  if err != nil {
      panic(err)
    }
  // defer: 在函数退出时,执行关闭gzip对象
  defer gr.Close()
  // 读取gzip对象内容
  rBuf, err := ioutil.ReadAll(gr)
  if err != nil {
    fmt.Println("[read gzip data err]: ", err)
  }
  // 以文本形式输出
  fmt.Printf("%s\n", rBuf)
}

输出: ABCDEFG

补充:golang通过在线读取请求url返回的zip内部内容

访问url返回的zip包,怎么直接解析zip中的文件并获取文件中的信息呢?

以前都是用java语言做这些事情,今天闲来蛋疼,用golang也实现了一下,效果已经发布在我的公众号:j全家桶---激活码中。

引用了以下包:

"archive/zip"
"bufio"
"bytes"
"fmt"
"io"
"io/ioutil"
"net/http"
"os"

1、通过http包内部方法,请求了需要访问的url,这次只是为了分享在线解析zip,所以地址就不写出来了。

2、读取字节流并新建一个读卡器指定读取大小,最好弄个延迟关闭流不然内存泄露那是必须的。

3、接下来就是获取zip中的信息,只需要遍历一下读取到的文件把数据取出来就行了

使用go读取gzip格式的压缩包的操作

其实还是蛮简单的,只是golang语言用得少,对于流的操作也比较少所以写一个今天实现这个功能的总结,点滴积累厚积薄发!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。

标签:
go,读取gzip格式,压缩包

金狮镖局 Design By www.egabc.com
金狮镖局 免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
金狮镖局 Design By www.egabc.com

评论“使用go读取gzip格式的压缩包的操作”

暂无使用go读取gzip格式的压缩包的操作的评论...

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?