Go语言ioutil.WriteFile写入文件

Go语言ioutil.WriteFile写入文件教程

Golang 中,写 文件 有四种方法,分别为:使用 io.WriteString 写文件,使用 ioutil.WriteFile 写文件,使用 file.Write 写文件,使用 writer.WriteString 写文件。

ioutil.WriteFile写文件

语法

func WriteFile(filename string, data []byte, perm os.FileMode) error

参数

参数 描述
filename 文件路径。
data 要写入的文件内容。
perm 文件权限。

返回值

返回值 描述
err 写入失败,则返回错误信息。

说明

使用 WriteFile 方法写文件,接受的第一个 参数 是一个 string 类型 的文件名,第二个参数是一个要写入的文件内容的 byte 数组,最后一个参数是文件的权限。

如果写入成功,返回空的 error 信息,如果写入失败,返回 error 信息,使用 ioutil.WriteFile写文件,在写入文件之前,我们不需要判断文件是否存在,如果文件不存在,会自动创建文件,如果文件存在,则会覆盖原来的内容。

案例

ioutil.WriteFile写文件

使用 ioutil.WriteFile 写文件

package main import ( "fmt" "io/ioutil" "os" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") var( fileName = "C:/haicoder.txt" content = "Hello HaiCoder" err error ) if err = ioutil.WriteFile(fileName, []byte(content), 0666); err != nil{ fmt.Println("Writefile Error =", err) return } //读取文件 fileContent, err := ioutil.ReadFile(fileName) if err != nil{ fmt.Println("Read file err =", err) return } fmt.Println("Read file success =", string(fileContent)) }

程序运行后,控制台输出如下:

12_golang WriteFile写入文件.png

在运行程序之前,文件 “C:/haicoder.txt” 是不存在的,我们直接使用 ioutil.WriteFile 来进行写入,文件不存在,使用 ioutil.WriteFile 来写入时,程序不会报错,程序会自动创建文件并写入。

写入文件成功后,我们使用 ioutil.ReadFile 一次性读出了整个文件内容,我们发现读出来的文件内容与写入的文件内容一样。

现在,我们再次运行程序,控制台输出如下:

13_golang WriteFile写入文件.png

我们看到,程序写入的内容还是 “Hello HaiCoder”,说明原来文件的内容已经被清空了,使用 ioutil.WriteFile 写入文件时,如果文件存在,则首先会清空文件后再写入。

Go语言ioutil.WriteFile写文件总结

func WriteFile(filename string, data []byte, perm os.FileMode) error

使用 WriteFile 方法写文件,接受的第一个参数是一个 string 类型的文件名,第二个参数是一个要写入的文件内容的 byte 数组,最后一个参数是文件的权限。

如果写入成功,返回空的 error 信息,如果写入失败,返回 error 信息,使用 ioutil.WriteFile写文件,在写入文件之前,我们不需要判断文件是否存在,如果文件不存在,会自动创建文件,如果文件存在,则会覆盖原来的内容。