最简单的一次性写入用os.WriteFile;需追加或分块写入时用os.OpenFile配合标志位;频繁小写入推荐bufio.Writer提升性能;务必检查错误、确认路径和权限。
用 ioutil.WriteFile 一次性写入字符串最简单
如果只是把一段文本(比如 JSON、配置内容)完整覆盖写入文件,ioutil.WriteFile 是最直接的选择。它内部自动处理打开、写入、关闭和权限设置,一行代码搞定。
注意:Go 1.16+ 中 ioutil 已被移到 os 包,应改用 os.WriteFile —— 否则会报 undefined: ioutil 错误。
示例:
err := os.WriteFile("config.json", []byte(`{"port":8080}`), 0644)
if err != nil {
log.Fatal(err)
}
-
0644是 Unix 权限,Windows 下会被忽略 - 写入前会清空原文件,不支持追加
- 不适合大文件,因为整个内容需先转成
[]byte加载进内存
用 os.OpenFile + *os.File.Write 控制写入模式
需要追加内容、避免覆盖、或分块写入时,得手动管理文件句柄。核心是用 os.OpenFile 指定标志位,再调用 Write 或 WriteString。
常见标志组合: