在golang中截断文件

Vit*_*Kos 5 go

截断文件时,它会在开始时添加额外的零字节:

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()
Run Code Online (Sandbox Code Playgroud)

结果,文件具有我0在开头用一段字节写的内容.

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

Eri*_*ley 15

请参阅以下文档Truncate:

截断更改文件的大小.它不会改变I/O偏移量.如果有错误,则其类型为*PathError.

所以你还需要在写之前寻找文件的开头:

configFile.Truncate(0)
configFile.Seek(0,0)
Run Code Online (Sandbox Code Playgroud)