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