当前位置:网站首页>学习笔记 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开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- 分布式事务Seata详细使用教程
- 瑞吉外卖项目:文件的上传与下载
- Sql optimization summary!detailed!(Required for the latest interview in 2021)
- 蓝牙协议栈开发板 STM32F1 跑蓝牙协议栈 –传统蓝牙搜索演示以及实现原理[通俗易懂]
- ApiPost is really fragrant and powerful, it's time to throw away Postman and Swagger
- 「MySQL」- 基础增删改查
- AWS亚马逊云账号注册,免费申请12个月亚马逊云服务器详细教程
- 突破传统可靠性测试:混沌工程优秀实践
- Use jOOQ to write vendor-agnostic SQL with JPA's native query or @Formula.
- xmind使用指南(XMind具有下列哪些功能)
猜你喜欢
[Virtualization ecological platform] Raspberry Pi installation virtualization platform operation process
《JUC并发编程 - 高级篇》06 - 共享模型之不可变(不可变类的设计 | 不可变类的使用 | 享元模式)
web安全入门-黑苹果MAC系统安装
台达PLC出现通信错误或通信超时或下载时提示机种不符的解决办法总结
St. Regis Takeaway Project: New dishes and dishes paged query
Redis缓存面临的缓存击穿问题
R语言做面板panelvar例子
SQL - Left join, Right join, Inner join
新人学习小熊派华为iot介绍
AWS Amazon cloud account registration, free application for 12 months Amazon cloud server detailed tutorial
随机推荐
线程池 ThreadPoolExecutor 详解
ApiPost is really fragrant and powerful, it's time to throw away Postman and Swagger
502 bad gateway causes and solutions
SQLServer2019 installation (Windows)
下课看着文档走回实验室,我重新拾起了遗忘的SQL运算符
AtCoder—E - Σ[k=0..10^100]floor(X/10^k
7 天学个Go,Go 结构体 + Go range 来学学
1161. 最大层内元素和 (二叉树的层序遍历)
学自动化测试哪个培训机构好 试听课程后就选了这个地方学习
[ 图 论 ]二分图判定及其匹配(基础+提高)
矩形脉冲波形的占空比及脉冲和瞬态特征的测量
3.网页信息解析方法:Xpath与BeautifulSoup
In half a month, MySQL has been consolidated again, and a tens of thousands of words "super hard core" article has been sorted out!
分布式事务Seata详细使用教程
生命不息,刷题不止,简单题学习知识点
WSL2安装.NET 6
Usage of JOIN in MySQL
What does "chmod 777-R filename" mean?
lotus-local-net 2k v1.17.0-rc4
Hospital management system database, course design, SQLserver, pure code design