go WriteFile文件追加写入(适合小文件)
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 precedence
log.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)