前言
有些情况我们是不需要写入磁盘,处理完直接释放。
代码
依赖文件
"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)
}