什么时候需要刷新文件? 我从不这样做,因为我调用File.Close,并且我认为它会自动刷新,不是吗?
您会注意到os.File没有.Flush(),因为它不需要一个,因为它没有缓冲。写入是直接syscall写入文件。
当您的程序退出时(即使崩溃),操作系统将自动关闭所有打开的文件,并且文件系统会在您处理完磁盘后将您的更改写入磁盘(有时会在程序退出后几分钟) 。
调用os.File.Sync()将调用fsync()syscall,它将强制文件系统将其缓冲区刷新到磁盘。即使系统已关闭电源或操作系统崩溃,这也将确保您的数据在磁盘上并且持久。
您不需要调用.Sync()