1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Go 学习笔记(21)— 标准库 os 操作文件(新建 打开 写入 读取 删除 关闭文件)

Go 学习笔记(21)— 标准库 os 操作文件(新建 打开 写入 读取 删除 关闭文件)

时间:2022-02-01 12:02:48

相关推荐

Go 学习笔记(21)— 标准库 os 操作文件(新建 打开 写入 读取 删除 关闭文件)

Go操作文本文件时,与其它语言一样也有新建文件、打开文件、写文件、读文件、删除文件等操作。主要有两个标准库来提供这些操作,分别为osioutil。在该文中我们介绍os模块。

1. 新建文件

func Create(name string) (file *File, err Error)//返回 File 的内存地址, 错误信息;通过 os 库调用

func NewFile(fdint, name string) *File//返回文件的内存地址, 通过 os 库调用

2. 打开文件

func Open(namestring) (file *File, err Error)//返回 File 的内存地址, 错误信息;通过 os 库调用

func OpenFile(name string, flagint, perm unit32) (file *File, err Error)//返回 File 的内存地址, 错误信息, 通过 os 库调用

3. 写入文件

//写入一个 slice, 返回写的个数, 错误信息, 通过 File 的内存地址调用func (file*File).Write(b []byte) (n int, err Error)

//从 slice 的某个位置开始写入, 返回写的个数, 错误信息,通过 File 的内存地址调用func (file*File).WriteAt(b []byte, off int64) (n int, err Error)

//写入一个字符串, 返回写的个数, 错误信息, 通过 File 的内存地址调用func (file*File).WriteString(s string) (ret int, err Error)

4. 读取文件

//读取一个 slice, 返回读的个数, 错误信息, 通过 File 的内存地址调用func (file*File).Read(b []byte) (n int, err Error)

//从 slice 的某个位置开始读取, 返回读到的个数, 错误信息, 通过 File 的内存地址调用func (file*File).ReadAt(b[]byte, offint64) (n int, err Error)

4. 删除文件

//传入文件的路径来删除文件,返回错误个数func Remove(name string)Error

5. 关闭文件

func (f *File) Close() error

6. 使用示例

package mainimport ("fmt""os")func main() {fileName := "/home/wohu/gocode/src/test.txt"writeFile(fileName)readFile(fileName)}func writeFile(fileName string) {file, err := os.Create(fileName)if err != nil {fmt.Println(err)return}for i := 0; i <= 5; i++ {outStr := fmt.Sprintf("%s:%d\n", "hello, world", i)file.WriteString(outStr)file.Write([]byte("abcd\n"))}file.Close()}func readFile(fileName string) {file, err := os.Open(fileName)if err != nil {fmt.Println(err)return}defer file.Close()buf := make([]byte, 1024)for {n, _ := file.Read(buf)if n == 0 {//0表示到达EOFbreak}os.Stdout.Write(buf)}}

输出结果:

wohu@wohu:~/gocode/src$hello.go test.txtwohu@wohu:~/gocode/src$ cat test.txt hello, world:0abcdhello, world:1abcdhello, world:2abcdhello, world:3abcdhello, world:4abcdhello, world:5abcdwohu@wohu:~/gocode/src$

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。