gpt4 book ai didi

go - 从zip.NewWriter返回io.ReadCloser

转载 作者:行者123 更新时间:2023-12-03 10:08:02 27 4
gpt4 key购买 nike

我正在创建一个缓冲区,然后通过zip.NewWriter()写入该缓冲区
所以我的代码看起来像这样

// Create a buffer to write our archive to.
buf := new(bytes.Buffer)

// Create a new zip archive.
w := zip.NewWriter(buf)

// Create file in this writer
f, err := w.Create("test.json")

/ Writing data to file
_, _ = f.Write([]byte("some data"))

// Close writer
_ = w.Close()

// TODO: Return this data in the form of io.ReadCloser
我的最终目标是将文件写入该zip编写器中,并以io.ReadCloser的形式返回数据,我的调用函数期望io.ReadCloser中的数据
我试图找到并尝试多种方法,但没有一个成功。

最佳答案

检查this example是否适合您

func ExampleWriter() {
// Create a buffer to write our archive to.
buf := new(bytes.Buffer)

// Create a new zip archive.
w := zip.NewWriter(buf)

// Add some files to the archive.
var files = []struct {
Name, Body string
}{
{"readme.txt", "This archive contains some text files."},
{"gopher.txt", "Gopher names:\nGeorge\nGeoffrey\nGonzo"},
{"todo.txt", "Get animal handling licence.\nWrite more examples."},
}
for _, file := range files {
f, err := w.Create(file.Name)
if err != nil {
log.Fatal(err)
}
_, err = f.Write([]byte(file.Body))
if err != nil {
log.Fatal(err)
}
}

// Make sure to check the error on Close.
err := w.Close()
if err != nil {
log.Fatal(err)
}
}
通过系统地检查这些操作的错误,您将看到是否存在任何问题。

关于go - 从zip.NewWriter返回io.ReadCloser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66004846/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com