概述
在Go语言中的os.File中,封装了所有的对于文件的相关操作,File是个结构体。
package main
import (
"fmt"
"bufio"
"os"
"io"
)
func main() {
//创建一个新文件
//1、打开文件 c:/src/go_code/test_project/gotest.txt
filePath := "c:/src/go_code/test_project/gotest.txt"
/*
func OpenFile(name string, flag int, perm FileMode) (file *File, err error)
参数1:文件路径
参数2:打开方式,这里选择了可读写 | 清空原文件内容,
参数3: 文件的权限为777,这个只在linux/unix有作用,在windows中无效
*/
file,err := os.OpenFile(filePath,os.O_RDWR | os.O_TRUNC, 777)
if err != nil {
fmt.Printf("open file error =%v",err)
return
}
//及时关闭file句柄
defer file.Close() //读取完毕后关闭文件,否则内存会溢出
//准备写入5句“2022年是虎年”
str := "2022年是虎年nr"// n表示换行 r表示可以用记事本也能打开正确的格式
//写入时,使用带缓存的 *writer
writer := bufio.NewWriter(file)
for i := 0; i < 7; i ++ {
writer.WriteString(str)
}
/*
因为writer是带缓存,因此在调用writerString方法时,其实内容是先写入到缓存中的,所以需要
调用Flush()方法,将缓冲的数据真正写入到文件中,否则文件中会没有数据 !!!
*/
writer.Flush()
//读取文件
file,err = os.Open(filePath)
if err != nil {
fmt.Println("open file err=", err)
}
defer file.Close()
reader := bufio.NewReader(file)//按每行读取
for {
str, err := reader.ReadString('n')//每行读到行尾就结束
if err == io.EOF { //读到末尾结束
break
}
fmt.Println(str)
}
fmt.Println("文件读取结束...")
}
最后
以上就是欢呼电脑为你收集整理的Go: 对文件的操作(关于os包的读、写函数)的全部内容,希望文章能够帮你解决Go: 对文件的操作(关于os包的读、写函数)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复