惯用的缓冲器os。标准

Idiomatically buffer os.Stdout

提问人:William Pursell 提问时间:11/17/2012 最后编辑:Rene KnopWilliam Pursell 更新时间:11/11/2018 访问量:26532

问:

os.Stdout.Write()无缓冲写入。要获得缓冲写入,可以使用以下命令:

f := bufio.NewWriter(os.Stdout)
f.Write(b)

问题:

有没有更惯用的方法来获得缓冲输出?

评论


答:

62赞 Stephen Weinberg 11/17/2012 #1

不,这是缓冲对 Stdout 的写入的最惯用方法。在许多情况下,您还需要添加一个延迟:

f := bufio.NewWriter(os.Stdout)
defer f.Flush()
f.Write(b)

这将确保在从函数返回时刷新缓冲区。

评论

1赞 carbocation 1/8/2020
我也喜欢调整它的大小:然后像 .var STDOUT = bufio.NewWriterSize(os.Stdout, 4096)fmt.Fprint(STDOUT, "output")