文件操作
- 文件包 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:目录切片