// PutContentFile 写入文件
// 文件不存在时自动创建,文件存在则追加内容
func PutContentFile(path string, content string) {
   file, err := os.OpenFile(path, os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666)
   if err != nil {
      log.Fatal(err)
   }
   defer func(file *os.File) {
      err := file.Close()
      if err != nil {
         log.Fatal(err)
      }
   }(file)

   _, err = file.Write([]byte(content))
   if err != nil {
      log.Fatal(err)
   }

   // 下面的属性可以单独使用,也可以组合使用。
   // 组合使用时可以使用 OR 操作设置 OpenFile的第二个参数,例如:
   // os.O_CREATE|os.O_APPEND
   // 或者 os.O_CREATE|os.O_TRUNC|os.O_WRONLY

   // os.O_RDONLY // 只读
   // os.O_WRONLY // 只写
   // os.O_RDWR // 读写
   // os.O_APPEND // 往文件中添建(Append)
   // os.O_CREATE // 如果文件不存在则先创建
   // os.O_TRUNC // 文件打开时裁剪文件
   // os.O_EXCL // 和O_CREATE一起使用,文件不能存在
   // os.O_SYNC // 以同步I/O的方式打开
}

测试

package main

import (
   "log"
   "os"
)

func main() {
   path := "text3.log"
   content := "学习go\n"
   PutContentFile(path, content)
}