在 Golang 中,写 文件 有四种方法,分别为:使用 io.WriteString 写文件,使用 ioutil.WriteFile 写文件,使用 file.Write 写文件,使用 writer.WriteString 写文件。
func WriteFile(filename string, data []byte, perm os.FileMode) error
参数 | 描述 |
---|---|
filename | 文件路径。 |
data | 要写入的文件内容。 |
perm | 文件权限。 |
返回值 | 描述 |
---|---|
err | 写入失败,则返回错误信息。 |
使用 WriteFile 方法写文件,接受的第一个 参数 是一个 string 类型 的文件名,第二个参数是一个要写入的文件内容的 byte 数组,最后一个参数是文件的权限。
如果写入成功,返回空的 error 信息,如果写入失败,返回 error 信息,使用 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))
}
程序运行后,控制台输出如下:
在运行程序之前,文件 “C:/haicoder.txt” 是不存在的,我们直接使用 ioutil.WriteFile 来进行写入,文件不存在,使用 ioutil.WriteFile 来写入时,程序不会报错,程序会自动创建文件并写入。
写入文件成功后,我们使用 ioutil.ReadFile 一次性读出了整个文件内容,我们发现读出来的文件内容与写入的文件内容一样。
现在,我们再次运行程序,控制台输出如下:
我们看到,程序写入的内容还是 “Hello HaiCoder”,说明原来文件的内容已经被清空了,使用 ioutil.WriteFile 写入文件时,如果文件存在,则首先会清空文件后再写入。
func WriteFile(filename string, data []byte, perm os.FileMode) error
使用 WriteFile 方法写文件,接受的第一个参数是一个 string 类型的文件名,第二个参数是一个要写入的文件内容的 byte 数组,最后一个参数是文件的权限。
如果写入成功,返回空的 error 信息,如果写入失败,返回 error 信息,使用 ioutil.WriteFile写文件,在写入文件之前,我们不需要判断文件是否存在,如果文件不存在,会自动创建文件,如果文件存在,则会覆盖原来的内容。