golang读取网络字节并解压zip

简介: golang读取网络字节并解压zip

前言

有些情况我们是不需要写入磁盘,处理完直接释放。

代码

依赖文件

"archive/zip"
"bufio"
"bytes"
"fmt"
"io"
"io/ioutil"
"net/http"
"os"
  resp, _ := http.Get(url)

  data, err := ioutil.ReadAll(resp.Body)
  zipReader, _ := zip.NewReader(bytes.NewReader(data), int64(len(data)))

  if err != nil {
    return err
  }

  for _, f := range zipReader.File {
    s := f.Name
    fmt.Println(s)
  }

完整代码

在内存中处理

    zipReader, err := zip.NewReader(bytes.NewReader(data), int64(len(data)))
    if err != nil {
      logrus.Error(err)
      return false, err
    }

    for _, f := range zipReader.File {
      filename := f.Name
      inFile, err := f.Open() //这个是从压缩文件读取出来的
      if err != nil {
        logrus.Error(err)
        return false, err
      }
      defer inFile.Close()
      b, _ := ioutil.ReadAll(inFile)
      s := string(b)
      fmt.Println(s)
    }
目录
打赏
0
0
0
0
137
分享
相关文章
|
10月前
|
Go
golang力扣leetcode 2039.网络空闲的时刻
golang力扣leetcode 2039.网络空闲的时刻
44 0
Golang 实现轻量、快速的基于 Reactor 模式的非阻塞 TCP 网络库
gev 是一个基于 epoll 和 kqueue 实现的高性能事件循环库,适用于 Linux 和 macOS(Windows 暂不支持)。它支持多核多线程、动态扩容的 Ring Buffer 读写缓冲区、异步读写和 SO_REUSEPORT 端口重用。gev 使用少量 goroutine,监听连接并处理读写事件。性能测试显示其在不同配置下表现优异。安装命令:`go get -u github.com/Allenxuxu/gev`。
|
10月前
|
Golang网络聊天室案例
Golang网络聊天室案例
81 2
Golang网络聊天室案例
No.6 腾讯,阿里,字节,优科面经(下-网络,数据库篇)
No.6 腾讯,阿里,字节,优科面经(下-网络,数据库篇)
162 0
字节Java全能手册火了!多线程/网络/性能调优/框架啥都有
在这个技术不断更新的年代,跟不上时代变化的速度就会被刷掉,特别是咱们程序员这一群体,技术不断更新的同时也要同时进步,不然长江后浪推前浪,前浪...... 一个程序员从一个什么都不懂的小白在学到有一定的Java基础的时候肯定是要学习更多的技术充实自己,甚至还要往架构师方向靠。但是一个优秀的架构师必须要有扎实的编程功底和丰富的理论知识,不光要能完成架构设计,更要有能力将设计转换为实际的产品。不会写代码、纸上谈兵的“架构师”设计出来的“架构”是靠不住的。
Golang 基础案例集合:中文拼音转换、解析二维码、压缩 zip、执行定时任务
曾经,因为不够注重基础吃了好多亏。总是很喜欢去看那些高大上的东西,却忽略了最基本的东西。然后会错误的以为自己懂的很多,但是其实是沙堆中筑高台,知道很多高大上的架构,但是基础的东西却不太了解。我觉得,可
276 0
Golang出现泛型后,Gin怎么封装网络请求处理
Go 1.18后出现泛型,小白怎么使用Gin框架怎么根据泛型封装客户端请求,
603 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等