go 在做文件追加写入时一般用os.OpenFile 指定 FileMode 为 os.O_APPEND. 如官方文档示例:
f, err := os.OpenFile("access.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)if err != nil {log.Fatal(err)}if _, err := f.Write([]byte("appended some data\n")); err != nil {f.Close() // ignore error; Write error takes precedencelog.Fatal(err)}if err := f.Close(); err != nil {log.Fatal(err)}
看起来比较繁琐, 可以利用 os.ReadFile 和 os.WriteFile 来实现追加, 当然这中先读后一起写入的方法不适合像日志系统这样的大文件, 比较适合临时的小文件.
b, err := os.ReadFile("test.txt")if err != nil {fmt.Println(err)}b = append(b, "appended some data\n"...)os.WriteFile("test.txt", b, 0666)