当前位置:网站首页>学习笔记 Golang 写入文件(io.WriteString、ioutil.WriteFile、file.Write、write.WriteString)
学习笔记 Golang 写入文件(io.WriteString、ioutil.WriteFile、file.Write、write.WriteString)
2022-07-31 11:17:00 【segegefe】
一、io.WriteString写文件
语法
func WriteString(w Writer, s string) (n int, err error)
参数
参数
描述
w
Writer 对象。
s
要写入的文件内容。
返回值
返回值
描述
n
写入的字节数。
err
写入失败,则返回错误信息。
说明
使用 WriteString 方法写文件,接受的第一个**参数是一个 Writer接口,第二个参数是一个stirng**类型的要写入的字符串。
如果写入成功,返回成功写入的字节数,如果写入失败,返回**error**信息,在写入文件之前,我们需要判断文件是否存在,如果文件不存在,则需要创建文件。
package main
import (
"fmt"
"io"
"io/ioutil"
"os"
)
const strs = "
写文件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 方法写文件,接受的第一个**参数是一个string 类型的文件名,第二个参数是一个要写入的文件内容的byte**数组,最后一个参数是文件的权限。
如果写入成功,返回空的**error**信息,如果写入失败,返回 error 信息,使用 ioutil.WriteFile写文件,在写入文件之前,我们不需要判断文件是否存在,如果文件不存在,会自动创建文件,如果文件存在,则会覆盖原来的内容。
package main
import (
"fmt"
"io/ioutil"
"os"
)
const strs = "
武动乾坤(林动)"
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 方法写文件,接受的**参数是一个要写入的文件内容的字节数组。如果写入成功,返回成功写入的字节数,如果写入失败,返回error**信息。
使用此方法在写入文件之前,我们需要判断文件是否存在,如果文件不存在,则需要创建文件。
(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)
转自:Golang读写文件-Go语言文件读写-Go语言 io.WriteString 写文件-嗨客网
Go语言Write写入文件-Golang file.Write写文件-嗨客网
Go语言WriteFile写文件-Golang ioutil.WriteFile写文件-嗨客网
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
猜你喜欢

Insertion and deletion of doubly linked list

AWS亚马逊云账号注册,免费申请12个月亚马逊云服务器详细教程

MySQL row-level locks (row locks, adjacent key locks, gap locks)

apisix-Getting Started

Android studio connects to MySQL and completes simple login and registration functions

一文吃透接口调用神器RestTemplate

Docker installs canal and mysql for simple testing and achieves cache consistency between redis and mysql

下课看着文档走回实验室,我重新拾起了遗忘的SQL运算符

使用内存映射加快PyTorch数据集的读取

IBM SPSS Statistics 28软件安装包下载及安装教程
随机推荐
lotus-local-net 2k v1.17.0-rc4
瑞吉外卖项目:新增菜品与菜品分页查询
3.网页信息解析方法:Xpath与BeautifulSoup
Life is endless, there are more questions, simple questions to learn knowledge points
使用内存映射加快PyTorch数据集的读取
学自动化测试哪个培训机构好 试听课程后就选了这个地方学习
7 days to learn Go, Go structure + Go range to learn
蓝牙协议栈开发板 STM32F1 跑蓝牙协议栈 –传统蓝牙搜索演示以及实现原理[通俗易懂]
After class, watching the documentation and walking back to the lab, I picked up the forgotten SQL operators again
IBM SPSS Statistics 28软件安装包下载及安装教程
突破传统可靠性测试:混沌工程优秀实践
v-model的原理
无法将“node.exe”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
Many mock tools, this time I chose the right one
音视频基础
矩形脉冲波形的占空比及脉冲和瞬态特征的测量
musl Reference Manual
台达PLC出现通信错误或通信超时或下载时提示机种不符的解决办法总结
Docker搭建Mysql主从复制
“带薪划水”偷刷阿里老哥的面经宝典,三次挑战字节,终成正果