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:目录切片
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 2,719评论 0 3
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,890评论 0 38
  • 一、数据类型转换 https://studygolang.com/articles/10838 package m...
    蓓蓓的万能男友阅读 1,104评论 0 1
  • fmt格式化字符串 格式:%[旗标][宽度][.精度][arg索引]动词旗标有以下几种:+: 对于数值类型总是输出...
    皮皮v阅读 1,122评论 0 3
  • ①保证时间 保证古筝的练习时间,周末、假期酌情增加,倘若碰到课业紧张的情况,可以适当缩减,但还是要保证每日练习,不...
    玉振古筝1976阅读 291评论 0 2