[我如何CSV编码而不是zip?
是否有一种方法可以将作家与其他人联系起来?我必须在编写者之间创建一个新的缓冲区吗?
var buf bytes.Buffer
zipWriter := zip.NewWriter(&buf)
csvwriter := csv.NewWriter(zipWriter) // <--- zip writer doesn't implement `io.writer`
csvwriter.Write([]string{"a", "b\"fwr", "c"})
csvwriter.Write([]string{"a", "e", "ww"})
csvwriter.Flush()
println(buf.String())
如果您想将文件作为单个压缩流gzip
,例如:
$ gzip somefile.csv
产生somefile.csv.gz
然后您可以按照此playground的说明进行以下操作:>
package main
import (
"bytes"
"compress/gzip"
"encoding/csv"
"fmt"
"io/ioutil"
)
func main() {
var buf bytes.Buffer
zipWriter := gzip.NewWriter(&buf)
csvwriter := csv.NewWriter(zipWriter) // <--- zip writer doesn't implement `io.writer`
csvwriter.Write([]string{"a", "b\"fwr", "c"})
csvwriter.Write([]string{"a", "e", "ww"})
csvwriter.Flush()
zipWriter.Flush()
zipWriter.Close()
fmt.Println(buf.Bytes())
zipReader, _ := gzip.NewReader(bytes.NewReader(buf.Bytes()))
d, err := ioutil.ReadAll(zipReader)
if err != nil {
fmt.Println("err", err)
}
fmt.Println(string(d))
}