我目前正在尝试在 CSV 中序列化一些字符串切片,而不将输出保存到文件中。我看到了一些使用 bytes.Buffer 的示例,但即使是我最小的测试也不起作用。我不知道如何调试它,代码编译时没有警告,并且在 writer.Flush() 之后不会抛出错误。它还可以正常工作,将结果保存到文件或将其直接通过管道传输到标准输出任何帮助将不胜感激:) 谢谢。PS:最后的打印只是一个测试。我知道我可以使用 csv.NewWriter(os.stdout) 这样做(并且它有效),但它不符合我的需要。我真的很想得到一个字节数组的结果。package mainimport ( "bytes" "encoding/csv" "fmt")func main() { var buffer bytes.Buffer writer := csv.NewWriter(&buffer) writer.Write([]string{"1", "2", "3", "4"}) writer.Write([]string{"5", "6", "7", "8"}) defer writer.Flush() if err := writer.Error(); err != nil { panic(err) } fmt.Println(buffer.Bytes())}
1 回答
慕森卡
TA贡献1806条经验 获得超8个赞
您正在推迟 Flush 调用,使其在 fmt.Println 调用之后执行。立即调用 Flush:
package main
import (
"bytes"
"encoding/csv"
"fmt"
)
func main() {
var buffer bytes.Buffer
writer := csv.NewWriter(&buffer)
writer.Write([]string{"1", "2", "3", "4"})
writer.Write([]string{"5", "6", "7", "8"})
writer.Flush()
if err := writer.Error(); err != nil {
panic(err)
}
fmt.Println(buffer.String())
}
https://play.golang.org/p/BHTyfsuf0tY
- 1 回答
- 0 关注
- 171 浏览
添加回答
举报
0/150
提交
取消
