• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    使用go读取gzip格式的压缩包的操作

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

    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中的信息,只需要遍历一下读取到的文件把数据取出来就行了

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

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

    您可能感兴趣的文章:
    • Go 语言中gin使用gzip压缩遇到的问题
    • go判断文件夹是否存在并创建的实例
    • go 协程返回值处理操作
    • golang实现的文件上传下载小工具
    • Golang 实现复制文件夹同时复制文件
    • golang文件读取-按指定BUFF大小读取方式
    • golang 如何获取pem格式RSA公私钥长度
    上一篇:go判断文件夹是否存在并创建的实例
    下一篇:使用go操作redis的有序集合(zset)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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