美文网首页
go_os包快速了解

go_os包快速了解

作者: 卖毛玉的小贩 | 来源:发表于2019-07-17 22:45 被阅读0次

    文件操作

    • 文件包 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包快速了解

          本文链接:https://www.haomeiwen.com/subject/khshlctx.html