• 学习笔记 Golang 写入文件(io.WriteString、ioutil.WriteFile、file.Write、write.WriteString)


    一、io.WriteString写文件

    语法

    func WriteString(w Writer, s string) (n int, err error)
    
    • 1

    参数

    参数

    描述

    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
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66

    golang 写文件
    写入成功:n= 25
    读取成功,文件内容:

    写文件ok思密达2

    写文件ok思密达3

    写文件ok思密达3

    调试器 已完成,退出代码为 0

    二、ioutil.WriteFile写文件

    语法

    func WriteFile(filename string, data []byte, perm os.FileMode) error
    
    • 1

    参数

    参数

    描述

    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))
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    API server listening at: [::]:64576
    读取成功,文件内容:

    武动乾坤(林动)

    调试器 已完成,退出代码为 0

    三、(1)file.Write写文件

    语法

    func (f *File) Write(b []byte) (n int, err error)
    
    • 1

    参数

    参数

    描述

    f

    文件对象。

    b

    要写入的文件内容。

    返回值

    返回值

    描述

    n

    成功写入的字节数。

    err

    写入失败,则返回错误信息。

    说明

    使用 file.Write 方法写文件,接受的**参数是一个要写入的文件内容的字节数组。如果写入成功,返回成功写入的字节数,如果写入失败,返回error**信息。

    使用此方法在写入文件之前,我们需要判断文件是否存在,如果文件不存在,则需要创建文件。

    (2)file.WriteString写文件

    语法

    func (f *File) WriteString(s string) (n int, err error)
    
    • 1

    参数

    参数

    描述

    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开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    GLEIF携手TrustAsia,共促数字邮件证书的信任与透明度升级
    手撕LRU缓存——LinkedHashMap简易源码
    FFMPEG+Qt 实时显示本机USB摄像头1080p画面以及同步录制mp4视频
    CI+JUnit5并发单测机制创新实践
    synchronized & ReentrantLock总结
    一:图形的位置和尺寸测量
    计算机网络第6章应用层 单元测试(习题+答案+图文解析)
    JavaScript 如何实现一个响应式系统
    他又来了,.net开源智能家居之小米米家的c#原生sdk【MiHome.Net】1.0.0发布,快来打造你的私人智能家居吧
    【华为上机真题 2022】字符串加密
  • 原文地址:https://blog.csdn.net/segegefe/article/details/126081133