Go语言 文件操作的 4个写文件经典案例 (Golang经典编程案例) - Go语言中文社区

Go语言 文件操作的 4个写文件经典案例 (Golang经典编程案例)


os包下面有OpenFile函数:在这里插入图片描述

案例1:创建一个新文件,写入5句 :hello,Go语言

package main

import (
	"fmt"
	"os"
	"bufio"
)

func main() {
	//创建一个新文件,写入内容 5句 hello,Go语言
	filePath := "c:/amyfile/abc.txt"
	file, err := os.OpenFile(filePath, os.O_WRONLY | os.O_CREATE, 0666)
	if err != nil{
		fmt.Println("open file err",err)
	}
	//及时关闭file句柄
	defer file.Close()

	//写入文件时,使用带缓存的 *Writer
	write := bufio.NewWriter(file)
	for i := 0; i < 5; i++ {
		write.WriteString("hello,Go语言 n")
	}
	//Flush将缓存的文件真正写入到文件中
	write.Flush()
}

执行之后,可以看出文件已被写入:
在这里插入图片描述

案例2:打开一个存在的文件,在原来的内容追加内容:ABC!!

package main

import (
	"fmt"
	"os"
	"bufio"
)

func main() {
	//创建一个新文件,写入内容 5句 hello,Go语言
	filePath := "c:/amyfile/abc.txt"
	file, err := os.OpenFile(filePath, os.O_WRONLY | os.O_APPEND, 0666)
	if err != nil{
		fmt.Println("open file err",err)
	}
	//及时关闭file句柄
	defer file.Close()

	//写入文件时,使用带缓存的 *Writer
	write := bufio.NewWriter(file)
	for i := 0; i < 5; i++ {
		write.WriteString("ABC! rn")
	}
	//Flush将缓存的文件真正写入到文件中
	write.Flush()
}

执行,发现内容追加成功:
在这里插入图片描述

案例3:打开一个存在的文件,将原来的内容读出来,显示在终端,并且追加5句:hello,北京。

package main

import (
	"fmt"
	"os"
	"bufio"
	"io"
)

func main() {
	//创建一个新文件,写入内容 5句 hello,Go语言
	filePath := "c:/amyfile/abc.txt"
	file, err := os.OpenFile(filePath, os.O_RDWR | os.O_APPEND, 0666)
	if err != nil{
		fmt.Println("open file err",err)
	}
	//及时关闭file句柄
	defer file.Close()

	//读原来文件的内容,并且显示在终端
	reader := bufio.NewReader(file)
	for {
		str, err := reader.ReadString('n')
		if err == io.EOF {
			break
		}
		fmt.Print(str)
	}

	//写入文件时,使用带缓存的 *Writer
	write := bufio.NewWriter(file)
	for i := 0; i < 5; i++ {
		write.WriteString("hello,北京。 rn")
	}
	//Flush将缓存的文件真正写入到文件中
	write.Flush()
}

执行,原来的文件在控制台读取成功,并且在文件中追加成功:
在这里插入图片描述

案例4:编写一个程序,将一个文件的内容复制到另外一个文件(注:这两个文件都已存在)

package main

import (
	"fmt"
	"io/ioutil"
)

func main() {
	//创建一个新文件,写入内容 5句 hello,Go语言
	file1Path := "c:/amyfile/abc.txt"
	file2Path := "c:/amyfile/defer.txt"
	data, err := ioutil.ReadFile(file1Path)
	if err != nil{
		fmt.Printf("open file err=%vn",err)
		return
	}
	err = ioutil.WriteFile(file2Path, data,0666)

	if err != nil{
		fmt.Printf("open file err=%vn",err)
	}
}

执行,发现内容复制成功:
在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/cui_yonghua/article/details/94549926
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-13 15:07:42
  • 阅读 ( 2277 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢