摘要
本文部分内容来源于网络,个人收集整理,请勿传播
Go读写文件的一些包的使用方法
io/ioutil
主要是操作文件、文件夹
ReadAll
1 | func ReadAll(r io.Reader) ([]byte, error) |
- 读取
r
中的所有数据,返回读取的数据和遇到的错误 - 如果读取成功,则
err
返回nil
,而不是EOF
,因为ReadAll
定义为读取所有数据,所以不会把EOF
当做错误处理。
1 | package main |
ReadDir
1 | func ReadDir(dirname string) ([]os.FileInfo, error) |
ReadDir
读取指定目录中的所有目录和文件(不包括子目录)- 返回读取到的文件信息列表和遇到的错误,列表是经过排序的。
1 | package main |
ReadFile
1 | func ReadFile(filename string) ([]byte, error) |
ReadFile
读取文件中的所有数据,返回读取的数据和遇到的错误- 如果读取成功,则
err
返回nil
,而不是EOF
1 | package main |
TempDir
1 | func TempDir(dir, prefix string) (name string, err error) |
- 操作系统中一般都会提供临时目录
- 比如
linux
下的/tmp
目录(通过os.TempDir()
可以获取到) - 有时候,我们自己需要创建临时目录,比如
Go
工具链源码中(src/cmd/go/build.go
) - 通过
TempDir
创建一个临时目录,用于存放编译过程的临时文件
1 | package main |
TempFile
1 | func TempFile(dir, prefix string) (f *os.File, err error) |
TempFile
在dir
目录中创建一个以prefix
为前缀的临时文件,并将其以读写模式打开。返回创建的文件对象和遇到的错误- 如果
dir
为空,则在默认的临时目录中创建文件(参见os.TempDir
- 多次调用会创建不同的临时文件,调用者可以通过
f.Name()
获取文件的完整路径 - 调用本函数所创建的临时文件,应该由调用者自己删除。
1 | package main |
WriteFile
1 | func WriteFile(filename string, data []byte, perm os.FileMode) error |
WriteFile
向文件中写入数据,写入前会清空文件- 如果文件不存在,则会以指定的权限创建该文件
- 返回遇到的错误
1 | package main |
读
1 | package main |
写
1 | package main |
os
读
1 | package main |
写方法
1 | package main |
几种读取文件方法速度比较
1 | package main |
实例
1 | package main; |