Golang覆盖写入文件的小坑
记录一点Golang文件操作的笔记,环境:Ubuntu
// 删除文件 func removeFile() { err := os.Remove("test.txt") if err != nil { log.Fatal(err) } }
/* 文件操作 */ // 有个坑,Python、Java的写文件默认函数操作默认是覆盖的,而是Golang的OpenFile函数写入默认是追加的 // os.O_TRUNC 覆盖写入,不加则追加写入 func WriteToFile(fileName string, content string) error { f, err := os.OpenFile(fileName, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0644) if err != nil { fmt.Println("file create failed. err: " + err.Error()) } else { // offset //os.Truncate(filename, 0) //clear n, _ := f.Seek(0, os.SEEK_END) _, err = f.WriteAt([]byte(content), n) fmt.Println("write succeed!") defer f.Close() } return err }
// Linux清空文件内容的操作,比如清空result.json文件内容: cat /dev/null > result.json
Github地址:https://github.com/kumataahh