创建文件:
func Create(name string) (*File, error)
- 路径可以是绝对路径,也可以是相对路径
- 创建文件的权限是0666,然后经过文件掩码运算
- 覆盖已经存在的文件
文件掩码设置:
func Umask(newUmask string)(int)
- 返回旧的文件掩码
- 新掩码一般设置为022
打开文件:
func Open(name string) (*File, error)
- 只读方式打开文件
- 记得关闭
获取一个文件或文件夹的信息:
func Stat(name string) (FileInfo, error)
读取文件:
func (f *File) Read(b []byte) (n int, err error)
举例来说:
file, err := os.Open("/home/za/new.txt")
defer file.Close()
if err != nil {
fmt.Println("Open file err : ", err)
return
}
//读取缓冲区
buf := make([]byte, 4096)
for{
//读取文件数据到缓冲区
n, err := file.Read(buf)
if err != nil && err != io.EOF {
fmt.Println("File read err : ", err)
return
}
//文件读取结束
if n == 0 {
fmt.Println("文件读取结束")
return
}
}
写入文件:
func OpenFile(name string, flag int, perm FileMode) (*File, error)
- flag参数可以是O_RDONLY 、O_RDWR 、O_APPEND 、O_CREATE ,可以用 | 组合。
- perm设置文件创建时的权限,该权限在结合umask之前
按字节切片写入数据:
func (f *File) Write(b []byte) (n int, err error)
按字符串写入数据:
func (f *File) WriteString(s string) (n int, err error)
设置文件指针的位置:
func (f *File) Seek(offset int64, whence int) (ret int64, err error)
- offset偏移量
- whence:0表示从文件开头。1表示文件指针当前位置。2表示从文件结尾开始。
- 返回值为新的文件指针位置和相应错误
ioutils包
读取文件:
func ReadFile(filename string) ([]byte, error)