本来是一个很简单的问题,但最近两年多一直用python写代码,习惯了那种简单的文件操作方式。在go里面打开文件时要指定文件读写模式,例如O_CREATE、O_RDONLY等等,和C非常相似,以前用的时候还记得很清楚。今天遇到的一个问题是:我以O_CREATE | O_APPEND 打开文件,怎么都无法写入,还不报错!最后仔细看了看文档,才知道还要加上O_RDWR才能写入。一个简单而初级的错误,还是记一下吧,希望不要再犯类似的错误。
func appendToFile(file, str string) {
f, err := os.OpenFile(file, os.O_CREATE|os.O_APPEND|os.O_RDWR, 0660)
if err != nil {
fmt.Printf("Cannot open file %s!\n", file)
return
}
defer f.Close()
f.WriteString(str)
}