40. Go 语言的文件操作

AI 概述
1. 文件创建/打开2. 文件读取3. 文件写入4. 小结 本文主要介绍 Go 语言中对文件系统的操作,Go 语言内置库中提供了丰富的文件操作函数,所以本文主要介绍使用 Go 语言中的内置包——os来实现文件操作。 1. 文件创建/打开 若你想创建/打开一个文件,则可以使用: func OpenFile(name string, flag int, pe...
目录
文章目录隐藏
  1. 1. 文件创建/打开
  2. 2. 文件读取
  3. 3. 文件写入
  4. 4. 小结

本文主要介绍 Go 语言中对文件系统的操作,Go 语言内置库中提供了丰富的文件操作函数,所以本文主要介绍使用 Go 语言中的内置包——os来实现文件操作。

1. 文件创建/打开

若你想创建/打开一个文件,则可以使用:

func OpenFile(name string, flag int, perm uint32) (file *File, err Error)  

参数解释:

  • name:就是文件名,若文件不在执行程序目录下,则可以使用文件的相对路径或者绝对路径。
  • flag:是文件打开模式,其支持模式共有(O_RDONLY|O_WRONLY|O_RDWR 三个中必须要选一个):
    • O_RDONLY:以只读方式打开文件;
    • O_WRONLY:以只写方式打开文件;
    • O_RDWR:以读写方式打开文件;
    • O_APPEND:写入时将数据追加到文件;
    • O_CREATE:如果不存在新文件,则创建一个新文件;
    • O_EXCL:与 O_CREATE 一起使用,文件不能存在;
    • O_SYNC:为同步 I/O 打开;
    • O_TRUNC:打开时截断常规可写文件;
  • perm:文件权限,一般最高为 0777。

代码示例:

package main

import (
    "fmt"
    "os"
)

func main() {
    f, err := os.OpenFile("a.txt", os.O_RDWR|os.O_CREATE, 0777)
    if err != nil {
        panic(err)
    }
    fmt.Println(f.Name())
}
  • 第 9 行:以读写的方式打开一个名为 a.txt 的文件,若文件不存在则创建这个文件,文件权限为 0777;
  • 第 13 行:打印这个文件名;

执行结果:

Go 语言的文件操作

2. 文件读取

文件打开之后,就可以从得到的文件对象中读取文件内容。我们在 a.txt 文件中输入 file test 字符串,来验证读取结果。

代码示例:

package main

import (
    "fmt"
    "os"
)

func main() {
    f, err := os.OpenFile("a.txt", os.O_RDWR|os.O_CREATE, 0777)
    if err != nil {
        panic(err)
    }
    b := make([]byte, 10) //最大读取字符数量
    i, err := f.Read(b)
    if err != nil {
        panic(err)
    }
    fmt.Println(i)         //输出读取的字符串的个数
    fmt.Println(string(b)) //输出读取到的字符串
}

执行结果:

文件读取

3. 文件写入

文件写入有两种模式,追加模式和覆写模式。如果在打开文件的时候加上了O_APPEND模式,就是追加,如果不加就是覆写。

代码示例:

package main

import (
    "os"
)

func main() {
    f1, err := os.OpenFile("a.txt", os.O_RDWR|os.O_CREATE, 0777)
    if err != nil {
        panic(err)
    }
    f1.WriteString("覆写字符")
    f1.Close()

    f2, err := os.OpenFile("b.txt", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0777)//追加模式打开文件
    if err != nil {
        panic(err)
    }
    f2.WriteString("追加字符")
}

反复执行几遍上述代码,然后打开两个文件,文件内容如下:

覆写的文件中只有”覆写字符”这四个字,因为其写入被不断覆写了。

覆写字符

追加的文件中有很多”追加字符”,因为其写入是不断的被追加到文件末尾的。

文件写入

4. 小结

本文主要介绍了 Go 语言中自带的 os 包的文件操作,需要注意的是文件的打开中若不确定文件是否存在,就可以加上O_CREATE。改写文件若是需要追加到文件末尾,记得在打开文件的时候要加上O_APPEND

以上关于40. Go 语言的文件操作的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 40. Go 语言的文件操作

发表回复