前言

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

代码
依赖文件
"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)
		}

回复 golang,获取学习路线思维导图、加入GO计划学习