go_os包快速了解

文件操作

  • 文件包 os

创建文件

  • func Create(name string) (file *File, err error)
    syscall.Umask(0)//置空 文件创建前对文件权限的置空
    
    • name:路径
    • 返回值
      • file:文件指针,本质上是file结构体
      • err:错误的情况在于当前路径目录权限不够
    • 特性:
      • 文件存在,覆盖源文件 (截断为0) 不存在则创建

关闭文件

  • func (f *File) Close() error
    defer 文件.Close()
    

打开文件相关函数

  • 只读文件打开

    • func Open(name string) (file *File, err error)
      
      • 文件存在:只读打开
      • 文件不存在:报错返回
  • 读写文件打开

    • func OpenFile(name string, flag int, perm FileMode) (file *File, err error)
      
      • 参数:
        • name:路径
        • flag:表示模式
          • O_RDONLY 只读
          • O_WRONLY 只写
          • O_RDWR 可读可写
        • perm:
          • 0 / 666 其他的不推荐

文件写入内容相关函数

  • 写字符串到文件

    • func (f *File) WriteString(s string) (ret int, err error)
      
  • 指定偏移量进行读写

    • func (f *File) Seek(offset int64, whence int) (ret int64, err error)
      
      • offset:偏移量 正:向文件尾偏,负:向文件头偏
      • whence:偏移起始位置
        • 0为相对文件开头 io.SeekStart
        • 1为相对当前位置 io.SeekCurrent
        • 2为相对文件结尾 io.SeekEnd
    • func (f *File) WriteAt(b []byte, off int64) (n int, err error)
      
  • 按字节写

  • func (f *File) Write(b []byte) (n int, err error)
    
    • b:待写入文件的数据内容
    • n:写入的字节个数

读文件

  • 包 bufio

  • 按行读文件

    • func NewReader(rd io.Reader) *Reader
      //rd:文件指针 
      
      func (b *Reader) ReadBytes(delim byte) (line []byte, err error)
      //delim 为\n 则读取当行  io.EOF文件结束
      
      • 缓冲区
        • 提高系统访问磁盘效率
        • 预读入,缓输出
  • 按字节读

    • func (f *File) Read(b []byte) (n int, err error)
      
      • b:空缓冲区,用来存放read实际读到的数据
      • n:实际读到的字节个数

目录操作

打开目录

  • func OpenFile(name string, flag int, perm FileMode) (file *File, err error)
    
    • name:绝对路径名
    • flag:o_rdonly
    • perm:os.ModeDir

读取目录项

  • func (f *File) Readdir(n int) (fi []FileInfo, err error)
    
    • n:读取目录个数 -1 为全部读取
    • fi:目录切片

你可能感兴趣的:(go_os包快速了解)