一、io.WriteString写文件
语法
func WriteString(w Writer, s string) (n int, err error)
参数
参数 | 描述 |
---|---|
w | Writer 对象。 |
s | 要写入的文件内容。 |
返回值
返回值 | 描述 |
---|---|
n | 写入的字节数。 |
err | 写入失败,则返回错误信息。 |
说明
使用 WriteString 方法写文件,接受的第一个 是一个 Writer ,第二个参数是一个 类型的要写入的字符串。
如果写入成功,返回成功写入的字节数,如果写入失败,返回 信息,在写入文件之前,我们需要判断文件是否存在,如果文件不存在,则需要创建文件。
package main
import (
"fmt"
"io"
"io/ioutil"
"os"
)
const strs = "\n \n 写文件ok思密达3"
func main(){
fmt.Println("golang 写文件")
var(
fileName = "G:/BaiduNetdiskDownload/my/视死如归魏君子.txt"
content = strs
file *os.File
err error
)
//文件是否存在
if Exists(fileName) {
//使用追加模式打开文件
file,err = os.OpenFile(fileName,os.O_APPEND,0666)
if err!=nil{
fmt.Println("打开文件错误:",err)
return
}
}else {
//不存在创建文件
file ,err = os.Create(fileName)
if err !=nil{
fmt.Println("创建失败",err)
return
}
}
defer file.Close()
//写入文件
n,err:=io.WriteString(file,content)
if err != nil {
fmt.Println("写入错误:",err)
return
}
fmt.Println("写入成功:n=",n)
//读取文件
fileContent,err:=ioutil.ReadFile(fileName)
if err!= nil{
fmt.Println("读取错误:",err)
return
}
fmt.Println("读取成功,文件内容:",string(fileContent))
}
// 判断所给路径文件/文件夹是否存在
func Exists(path string) bool {
_, err := os.Stat(path) //os.Stat获取文件信息
if err != nil {
if os.IsExist(err) {
return true
}
return false
}
return true
}
golang 写文件
写入成功:n= 25
读取成功,文件内容:
写文件ok思密达2
写文件ok思密达3
写文件ok思密达3调试器 已完成,退出代码为 0
二、ioutil.WriteFile写文件
语法
func WriteFile(filename string, data []byte, perm os.FileMode) error
参数
参数 | 描述 |
---|---|
filename | 文件路径。 |
data | 要写入的文件内容。 |
perm | 文件权限。 |
返回值
返回值 | 描述 |
---|---|
err | 写入失败,则返回错误信息。 |
说明
使用 WriteFile 方法写文件,接受的第一个 是一个 的文件名,第二个参数是一个要写入的文件内容的 数组,最后一个参数是文件的权限。
如果写入成功,返回空的 信息,如果写入失败,返回 error 信息,使用 ioutil.WriteFile写文件,在写入文件之前,我们不需要判断文件是否存在,如果文件不存在,会自动创建文件,如果文件存在,则会覆盖原来的内容。
package main
import (
"fmt"
"io/ioutil"
"os"
)
const strs = "\n \n 武动乾坤(林动)"
func main(){
var(
fileName = "G:/BaiduNetdiskDownload/my/武动乾坤.txt"
content = strs
err error
//file *os.File
)
//写入文件
if err = ioutil.WriteFile(fileName,[]byte(content),0666);err !=nil{
fmt.Println("写入错误:",err)
}
//读取文件
fileContent,err:=ioutil.ReadFile(fileName)
if err!= nil{
fmt.Println("读取错误:",err)
return
}
fmt.Println("读取成功,文件内容:",string(fileContent))
}
API server listening at: [::]:64576
读取成功,文件内容:
武动乾坤(林动)调试器 已完成,退出代码为 0
三、(1)file.Write写文件
语法
func (f *File) Write(b []byte) (n int, err error)
参数
参数 | 描述 |
---|---|
f | 文件对象。 |
b | 要写入的文件内容。 |
返回值
返回值 | 描述 |
---|---|
n | 成功写入的字节数。 |
err | 写入失败,则返回错误信息。 |
说明
使用 file.Write 方法写文件,接受的 是一个要写入的文件内容的 数组。如果写入成功,返回成功写入的字节数,如果写入失败,返回 信息。
使用此方法在写入文件之前,我们需要判断文件是否存在,如果文件不存在,则需要创建文件。
(2)file.WriteString写文件
语法
func (f *File) WriteString(s string) (n int, err error)
参数
参数 | 描述 |
---|---|
f | 文件对象。 |
s | 要写入的文件内容。 |
返回值
返回值 | 描述 |
---|---|
n | 成功写入的字节数。 |
err | 写入失败,则返回错误信息。 |
说明
使用 file.WriteString 方法写文件,接受的参数是一个要写入的文件内容的 。如果写入成功,返回成功写入的字节数,如果写入失败,返回 error 信息。
使用此方法在写入文件之前,我们需要判断文件是否存在,如果文件不存在,则需要创建文件。
写法和io.WriteString完全一致,只有细微的区别:
//io.WriteString() 写入文件
n,err =io.WriteString(file,content)
//file.Write() 写入文件
n,err:=file.Write([]byte(content))
//file.Write() 写入文件n,err =file.WriteString(content)