主页 > 知识库 > 使用go读取gzip格式的压缩包的操作

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

热门标签:宁波语音外呼系统公司 地图标注免费定制店 郑州智能语音电销机器人价格 不封卡外呼系统 仙桃400电话办理 上海极信防封电销卡价格 重庆庆云企业400电话到哪申请 湛江crm外呼系统排名 宿迁便宜外呼系统代理商

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

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读取gzip格式的压缩包的操作》,本文关键词  使用,读取,gzip,格式,的,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《使用go读取gzip格式的压缩包的操作》相关的同类信息!
  • 本页收集关于使用go读取gzip格式的压缩包的操作的相关信息资讯供网民参考!
  • 推荐文章