截断文件时,它似乎在开头添加了额外的零字节:
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/