当前位置: 首页 > news >正文

go文件基本操作

一、文件读操作

文件内容如下:

水陆草木之花,可爱者甚蕃。
晋陶渊明独爱菊。自李唐来,世人甚爱牡丹。
予独爱莲之出淤泥而不染,濯清涟而不妖,中通外直,不蔓不枝,香远益清,亭亭净植,可远观而不可亵玩焉。
予谓菊,花之隐逸者也;
牡丹,花之富贵者也;
莲,花之君子者也。
噫!菊之爱,陶后鲜有闻。
莲之爱,同予者何人?牡丹之爱,宜乎众矣!

1.按行读取方式一

package mainimport ("bufio""fmt""os"
)func main() {//打开文件file, _ := os.Open("./file/data.txt")//创建一个文件阅读器,将文件句柄传递给阅读器reader := bufio.NewReader(file)//使用阅读器,按照行开始读取data, _, _ := reader.ReadLine()data1, _, _ := reader.ReadLine()data2, _, _ := reader.ReadLine()fmt.Println("data = ", string(data))fmt.Println("data1 = ", string(data1))fmt.Println("data2 = ", string(data2))file.Close()
}

执行结果如下:

data =  水陆草木之花,可爱者甚蕃。
data1 =  晋陶渊明独爱菊。自李唐来,世人甚爱牡丹。
data2 =  予独爱莲之出淤泥而不染,濯清涟而不妖,中通外直,不蔓不枝,香远益清,亭亭净植,可远观而不可亵玩焉。

2.按行读取方式二

reader.Readline()函数读取出来得内容是字节串,需要使用string转换一下数据。这时候另外一种方式就出现了,那就是reader.Readstring()

package mainimport ("bufio""fmt""os"
)func main() {file, _ := os.Open("./file/data.txt")reader := bufio.NewReader(file)data, _ := reader.ReadString('\n')data1, _ := reader.ReadString('\n')data2, _ := reader.ReadString('\n')fmt.Println("data = ", data)fmt.Println("data1 = ", data1)fmt.Println("data2 = ", data2)file.Close()}

按照一定行数读取

package mainimport ("bufio""fmt""os"
)func main() {file, _ := os.Open("./file/data.txt")reader := bufio.NewReader(file)//读取10行for i := 0; i <= 10; i++ {data, _ := reader.ReadString('\n')if data != "" {fmt.Print("data = ", data)}}file.Close()}

3.读取文件全部内容

适用于读取小文件.

package mainimport ("fmt""io/ioutil"
)func main() {//ioutil默认会打开文件data, _ := ioutil.ReadFile("./file/data.txt")fmt.Println("data = ", string(data))}

二、文件写操作

1.按行写入数据

package mainimport ("os"
)func main() {data := "我是一条测试数据\n"file_path := "./file/data2.txt"file, _ := os.OpenFile(file_path, os.O_CREATE|os.O_APPEND, 0666)file.WriteString(data)file.Close()
}

2.读内容并写入新文件

package mainimport ("io/ioutil"
)func main() {read_file_path := "./file/data.txt"write_file_path := "./file/data3.txt"data, _ := ioutil.ReadFile(read_file_path)ioutil.WriteFile(write_file_path, data, 0666)}
http://www.lryc.cn/news/130266.html

相关文章:

  • 每日一学——应用层
  • blender的快捷键记录
  • 3D- vista:预训练的3D视觉和文本对齐Transformer
  • SAP ABAP 直接把内表转换成PDF格式(smartform的打印函数输出OTF格式数据)
  • 侯捷 C++ part2 兼谈对象模型笔记——7 reference、const、new/delete
  • C++学习笔记总结练习:primer 学习日志
  • 发布一个开源的新闻api(整理后就开源)
  • 3d max省时插件CG MAGIC功能中的材质参数可一键优化!
  • 什么是变量提升(hoisting)?它在JavaScript中是如何工作的?
  • .git内存清理方式
  • i.MX6ULL开发板无法进入NFS挂载文件系统的解决办法
  • 七夕特辑——3D爱心(可监听鼠标移动)
  • C++函数模板和类模板
  • 【Unity】编辑器下查找制定文件下的所有特定资源
  • 分布式唯一ID实战
  • el-element日期时间组件限制可选时间范围
  • 【李沐】3.3线性回归的简洁实现
  • Ghost-free High Dynamic Range Imaging withContext-aware Transformer
  • 过来,我告诉你个秘密:送给程序员男友最好的礼物,快教你对象学习磁盘分区啦!小点声哈,别让其他人学会了!
  • Cadence+硬件每日学习十个知识点(38)23.8.18 (Cadence的使用,界面介绍)
  • React Native Expo项目,复制文本到剪切板
  • React源码解析18(5)------ 实现函数组件【修改beginWork和completeWork】
  • vscode ssh 远程 gdb 调试
  • 云原生 AI 工程化实践之 FasterTransformer 加速 LLM 推理
  • PHP酒店点菜管理系统mysql数据库web结构apache计算机软件工程网页wamp
  • 【面试复盘】知乎暑期实习算法工程师二面
  • 内网穿透和服务器+IP 实现公网访问内网的区别
  • JAVA权限管理 助力企业精细化运营
  • 金融语言模型:FinGPT
  • LeetCode--HOT100题(30)