截断文件时,它似乎在开头添加了额外的零字节:

configFile, err := os.OpenFile("./version.json", os.O_RDWR, 0666)
defer configFile.Close()
check(err)
//some actions happen here
configFile.Truncate(0)
configFile.Write(js)
configFile.Sync()

结果,文件的内容是我写的,开头是 0 字节的部分。

如何在没有前导零的情况下截断和完全重写文件?

最佳答案

documentation on Truncate :



因此,您还需要在写入之前查找文件的开头:

configFile.Truncate(0)
configFile.Seek(0,0)

作为简写,在调用 os.O_TRUNC 时使用标志 os.OpenFile 在打开时截断。

关于go - 如何在没有前导零的情况下截断并完全重写文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44416645/

10-13 05:36