登录
首页 >  Golang >  Go教程

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

来源:脚本之家

时间:2022-12-31 18:47:40 132浏览 收藏

怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《使用go读取gzip格式的压缩包的操作》,涉及到压缩包、gogzip,有需要的可以收藏一下

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

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语言用得少,对于流的操作也比较少所以写一个今天实现这个功能的总结,点滴积累厚积薄发!

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

以上就是《使用go读取gzip格式的压缩包的操作》的详细内容,更多关于golang的资料请关注golang学习网公众号!

声明:本文转载于:脚本之家 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表