IO 总览
2026/2/1大约 2 分钟
文件与 IO
Go 的 I/O 操作围绕 io 包的接口设计,提供了统一的读写抽象。
章节导航
知识体系
IO 接口层次
文件系统
学习路线
快速预览
读取文件
// 简单读取
data, err := os.ReadFile("config.json")
if err != nil {
log.Fatal(err)
}
fmt.Println(string(data))写入文件
// 简单写入
err := os.WriteFile("output.txt", []byte("Hello"), 0644)
if err != nil {
log.Fatal(err)
}流式处理
// 打开文件
file, err := os.Open("data.txt")
if err != nil {
log.Fatal(err)
}
defer file.Close()
// 读取内容
scanner := bufio.NewScanner(file)
for scanner.Scan() {
fmt.Println(scanner.Text())
}核心概念
Reader 接口
type Reader interface {
Read(p []byte) (n int, err error)
}
// Read 最多读取 len(p) 字节到 p
// 返回读取的字节数 n 和遇到的错误Writer 接口
type Writer interface {
Write(p []byte) (n int, err error)
}
// Write 从 p 写入数据
// 返回写入的字节数 n 和遇到的错误Closer 接口
type Closer interface {
Close() error
}
// Close 关闭资源并释放实践建议
学习建议
- 理解接口 - 掌握 Reader/Writer 接口
- 使用 defer - 确保资源被正确关闭
- 缓冲 I/O - 使用 bufio 提高性能
- 错误处理 - 始终检查和处理错误
- 路径处理 - 使用 filepath 而非硬编码路径
学习检查
完成本章节学习后,您应该能够:
下一步
让我们开始深入学习文件与 IO 的各个部分!