跳到主要内容

文件与 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 文件权限安全​