当前位置:网站首页>学习笔记 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(AT模式、Tcc模式、Tcc Vs AT)、分布式事务—MQ
- 结构化查询语言SQL-关系数据库标准语言
- AWS Amazon cloud account registration, free application for 12 months Amazon cloud server detailed tutorial
- 《MySQL高级篇》五、InnoDB数据存储结构
- 瑞吉外卖项目:文件的上传与下载
- Unix知识:shell详细解读
- Detailed explanation of SQL stored procedures
- keras自带数据集(横线生成器)
- 突破传统可靠性测试:混沌工程优秀实践
- 《MySQL高级篇》四、索引的存储结构
猜你喜欢
线程池 ThreadPoolExecutor 详解
拥抱趋势!阿里这套微服务开源框架权威手册,实战到底层细致清晰
Candence学习篇(11) allegro中设置规则,布局,走线,铺铜
台达PLC出现通信错误或通信超时或下载时提示机种不符的解决办法总结
SQLServer2019 installation (Windows)
cesium-Web网页优化进阶
In half a month, MySQL has been consolidated again, and a tens of thousands of words "super hard core" article has been sorted out!
If the value of the enum map does not exist, deserialization is not performed
apisix-Getting Started
最全phpmyadmin漏洞汇总
随机推荐
LeetCode 1161.最大层内元素和:层序遍历
A Method for Ensuring Data Consistency of Multi-Party Subsystems
IDEA 配置方法注释自动参数
【虚拟化生态平台】树莓派安装虚拟化平台操作流程
《MySQL高级篇》四、索引的存储结构
蓝牙协议栈开发板 STM32F1 跑蓝牙协议栈 –传统蓝牙搜索演示以及实现原理[通俗易懂]
Make your own dataset in FCN and train it
mpu9150(driverack pa简明教程)
准确率(Accuracy)、精度(Precision)、召回率(Recall)和 mAP 的图解
Hospital management system database, course design, SQLserver, pure code design
Inversion problem - key point
[ 图 论 ]二分图判定及其匹配(基础+提高)
5 个开源的 Rust Web 开发框架,你选择哪个?
生命不息,刷题不止,简单题学习知识点
[Virtualization Ecological Platform] Platform Architecture Diagram & Ideas and Implementation Details
「MySQL」- 基础增删改查
strings包详细文档+示例
unity-shader-2
Intranet Penetration Learning (IV) Domain Lateral Movement - SMB and WMI Service Utilization
keras自带数据集(横线生成器)