如何关闭golang中的bufio.Reader/Writer?

如何关闭golang中的bufio.Reader/Writer?,go,Go,如何关闭golang中的bufio.Reader或bufio.Writer func init(){ file,_ := os.Create("result.txt") writer = bufio.NewWriter(file) } 我是否应该关闭编写器?或者只使用file.Close()将使Writer关闭?据我所知,您无法关闭bufio.Writer 您要做的是Flush()bufio.Writer,然后Close()os.Writer: writer.Flush() f

如何关闭golang中的
bufio.Reader
bufio.Writer

func init(){
    file,_ := os.Create("result.txt")
    writer = bufio.NewWriter(file)
}

我是否应该关闭
编写器
?或者只使用
file.Close()
将使
Writer
关闭?

据我所知,您无法关闭
bufio.Writer

您要做的是
Flush()
bufio.Writer,然后
Close()
os.Writer:

writer.Flush()
file.Close()

我认为以下是典型的:

func doSomething(filename string){
    file, err := os.Create(filename)
    // check err
    defer file.Close()
    writer = bufio.NewWriter(file)
    defer writer.Flush()

    // use writer here
}

是的,总是脸红,它在一个小项目中咬了我。记住你可以做
w:=bufio.NewWriter
defer w.Flush()
@ThomasAhle忽略w.Flush的错误是一个好主意吗?@Shanicky\u C如果您想进行更高级的清理,您可以
defer clean(w)
左右。writer.Flush()是否保证在文件.Close()之前运行?如果没有,在刷新写入程序之前关闭文件会发生什么情况?
延迟
顺序在golang中指定,后进先出。