Go文件操作核心是os、io和bufio包,需理解“文件即句柄、读写即字节流”;打开用os.Open/ os.OpenFile并defer Close;读取按需选ReadFile、Scanner或Read;写入用WriteFile、WriteString或fmt.Fprintf;辅以Stat、MkdirAll、Rename等操作,务必处理错误与释放资源。

Go 语言的文件操作简洁直接,核心依赖 os 和 io/ioutil(已弃用,推荐用 os + io 组合)以及 bufio 包。关键在于理解“文件即句柄”和“读写即字节流”的设计思路。
使用 os.Open(只读)或 os.OpenFile(可指定标志位)获取 *os.File,必须手动调用 Close(),建议搭配 defer:
f, err := os.Open("data.txt") —— 只读打开,文件必须存在f, err := os.OpenFile("log.txt", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644) —— 追加写入,不存在则创建按需选择方式,避免一次性加载大文件到内存:
data, err := os.ReadFile("config.json")(Go 1.16+,返回 []byte)scanner := bufio.NewScanner(f),然后 for scanner.Scan() { line := scanner.Text() }
n, err := f.Read(buf),需手动管理缓冲区和循环写入前注意权限和路径是否存在:
立即学习“go语言免费学习笔记(深入)”;
err := os.WriteFile("output.txt", []byte("hello"), 0644)
f, _ := os.OpenFile("log.txt", os.O_APPEND|os.O_WRONLY, 0644); _, _ = f.WriteString("info: done\n"); f.Close()
fmt.Fprintf(f, "value=%d, name=%s\n", 42, "go")
常见元信息和安全操作不可少:
_, err := os.Stat("file.txt"); if os.IsNotExist(err) { ... }
fi, _ := f.Stat(); fi.Size(), fi.Mode(), fi.ModTime()
os.MkdirAll("path/to/dir", 0755)
os.Rename("old.txt", "new.txt")
基本上就这些。Go 的文件操作不复杂但容易忽略错误处理和资源释放,养成检查 err 和及时 Close 的习惯,就能稳稳落地。
以上就是Golang如何进行基本文件操作_Golang文件读写语法讲解的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号