跳到主要内容

文件与 IO

一、文件操作基础

1.1 os 包

  • 文件打开和关闭
  • File 类型
  • 文件权限

1.2 文件信息

  • FileInfo 结构
  • 文件属性获取
  • 文件状态

1.3 文件路径

  • path 包 vs filepath 包
  • 路径拼接
  • 路径分隔
  • 绝对路径和相对路径

二、文件读写

2.1 基本读写

  • Read/Write 方法
  • ReadFile/WriteFile
  • ioutil 包

2.2 缓冲读写

  • bufio.Reader
  • bufio.Writer
  • Scanner 读取
  • 缓冲区大小

2.3 文件定位

  • Seek 方法
  • Offset 位置
  • 文件指针

2.4 文件操作

  • 文件创建
  • 文件删除
  • 文件重命名
  • 文件截断

三、目录操作

3.1 目录创建

  • Mkdir
  • MkdirAll
  • 权限设置

3.2 目录遍历

  • ReadDir
  • Walk
  • filepath.Walk

3.3 目录操作

  • 删除目录
  • 临时目录
  • 工作目录

四、文件系统

4.1 文件系统抽象

  • fs.FS 接口
  • os.DirFS
  • embed.FS(嵌入文件)

4.2 嵌入式文件系统

  • go:embed 指令
  • 静态资源嵌入

五、IO 操作

5.1 io 包

  • Reader 接口
  • Writer 接口
  • Copy 和 CopyN

5.2 io/ioutil 包

  • 便捷函数
  • 已废弃替代

5.3 标准输入输出

  • os.Stdin
  • os.Stdout
  • os.Stderr

六、高级操作

6.1 文件锁

  • flock 机制
  • 并发文件操作

6.2 文件监控

  • fsnotify 库
  • 文件变化事件

6.3 CSV 文件处理

  • encoding/csv 包
  • CSV 读写

6.4 JSON 文件处理

  • JSON 序列化
  • JSON 流式处理

6.5 压缩文件

  • compress/gzip
  • compress/zip
  • compress/tar

七、最佳实践

7.1 资源管理

  • defer 关闭文件
  • 错误处理

7.2 性能优化

  • 缓冲读写
  • 批量操作

7.3 路径处理注意事项

7.4 文件权限安全