编码为CSV,而不是golang中的ZIP

问题描述 投票:0回答:1

[我如何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())
go stream
1个回答
0
投票

如果您想将文件作为单个压缩流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))
}
© www.soinside.com 2019 - 2024. All rights reserved.