当前位置:首页 > 科技  > 软件

让我们一起聊聊文件的操作

来源: 责编: 时间:2023-08-05 11:45:35 5518观看
导读文件【1】文件是什么?文件是保存数据的地方,是数据源的一种,比如大家经常使用的word文档、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保持视频,声音...【2】os包

文件

【1】文件是什么?

文件是保存数据的地方,是数据源的一种,比如大家经常使用的word文档、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保持视频,声音...E8w28资讯网——每日最新资讯28at.com

【2】os包下的File结构体封装了对文件的操作:

E8w28资讯网——每日最新资讯28at.com

传入一个字符串(文件的路径),返回的是文件的指针,和是否打开成功E8w28资讯网——每日最新资讯28at.com

(2)关闭文件:(方法)E8w28资讯网——每日最新资讯28at.com

E8w28资讯网——每日最新资讯28at.com

使文件不能用于读写。它返回可能出现的错误E8w28资讯网——每日最新资讯28at.com

【4】案例:

package mainimport(	"fmt"	"os")func main()  {	//打开文件:	file,err := os.Open("D:/test.txt")	if err != nil {		fmt.Println("文件打开出错,对应错误为:",err)	}	//没有出错,输出文件:	fmt.Println("文件=v%",file)	//.........一系列操作	//关闭文件:	err2 := file.Close()	if err2 != nil {		fmt.Println("关闭失败!")	}}

io的引入

【1】IO流对文件进行操作:

E8w28资讯网——每日最新资讯28at.com

读取文件(一次性)

【1】读取文件的内容并显示在终端(使用ioutil一次将整个文件读入到内存中),这种方式适用于文件不大的情况。相关方法和函数(ioutil.ReadFile)E8w28资讯网——每日最新资讯28at.com

E8w28资讯网——每日最新资讯28at.com

【2】案例:E8w28资讯网——每日最新资讯28at.com

package mainimport(	"fmt"	"io/ioutil")func main()  {	//备注:在下面的程序中不需要进行 Open/Close操作,因为文件的打开和关闭操作被封装在ReadFile函数内部了	//读取文件:	content,err := ioutil.ReadFile("D:/test.txt")	if err != nil {		fmt.Println("读取错误,错误为:",err)	}	//如果读取成功,将内容显示在终端即可:	//fmt.Printf("%v",content)	fmt.Printf("%v",string(content))}

读取文件(带缓冲区)

【1】读取文件的内容并显示在终端(带缓冲区的方式-4096字节),适合读取比较大的文件,使用os.Open,file.Close,bufio.NewReader(),reader.ReadString函数和方法E8w28资讯网——每日最新资讯28at.com

【2】案例:E8w28资讯网——每日最新资讯28at.com

package mainimport(	"fmt"	"io"	"os"	"bufio")func main()  {	file,err := os.Open("D:/test.txt")	if err != nil {		fmt.Println("打开文件失败,err=:",err)	}	//当函数退出时,让file关闭,防止内存泄露:	defer file.Close()	//创建一个流:	reader := bufio.NewReader(file)	//读取操作:	for{		//读取到一个换行就结束		str,err := reader.ReadString('/n')		//io.EOF 表示已经读取到文件的结尾		if err == io.EOF {			break		}		//如果没有读取到文件结尾的话,就正常输出文件内容即可:		fmt.Println(str)	}	//结束:	fmt.Println("文件读取成功,并且全部读取完毕")}

写入文件

【1】打开文件操作:E8w28资讯网——每日最新资讯28at.com

E8w28资讯网——每日最新资讯28at.com

三个参数含义:E8w28资讯网——每日最新资讯28at.com

(1)要打开的文件的路径E8w28资讯网——每日最新资讯28at.com

(2)文件打开模式(可以利用"|"符号进行组合)E8w28资讯网——每日最新资讯28at.com

E8w28资讯网——每日最新资讯28at.com

(3)权限控制(linux/unix系统下才生效,windows下设置无效)- 0666E8w28资讯网——每日最新资讯28at.com

【2】案例:E8w28资讯网——每日最新资讯28at.com

package mainimport(	"fmt"	"os"	"bufio")func main()  {	//写入文件操作:	//打开文件:	file,err := os.OpenFile("D:/test.txt",os.O_RDWR | os.O_APPEND | os.O_CREATE,0666)	if err != nil {		fmt.Printf("打开文件失败",err)		return	}	defer file.Close()	//写入文件操作:---》IO流---》缓冲输出流(带缓冲区)	writer := bufio.NewWriter(file)	for i := 0; i < 10; i++ {		writer.WriteString("你好 菜园子/n")	}	//流带缓冲区,刷新数据--->真正写入文件中:	writer.Flush()	s := os.FileMode(0666).String()	fmt.Println(s)}

文件复制操作

案例E8w28资讯网——每日最新资讯28at.com

package mainimport(	"io/ioutil"	"fmt")func main()  {	//定义源文件:	filePath := "D:/test.txt"	//定义目标文件:	newPath := "D:/test_copy.txt"	//对文件进行读取:	content,err := ioutil.ReadFile(filePath)	if err != nil {		fmt.Printf("打开文件失败",err)		return	}	 //写出文件:	err = ioutil.WriteFile(newPath,content,0666)	if err != nil {		fmt.Println("写出失败")	}}

本文链接:http://www.28at.com/showinfo-26-122-0.html让我们一起聊聊文件的操作

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 十个简单但很有用的Python装饰器

下一篇: 之家push系统迭代之路

标签:
  • 热门焦点
  • MIX Fold3包装盒泄露 新机本月登场

    小米的全新折叠屏旗舰MIX Fold3将于本月发布,近日该机的真机包装盒在网上泄露。从图上来看,新的MIX Fold3包装盒在外观设计方面延续了之前的方案,变化不大,这也是目前小米旗舰
  • 摸鱼心法第一章——和配置文件说拜拜

    为了能摸鱼我们团队做了容器化,但是带来的问题是服务配置文件很麻烦,然后大家在群里进行了“亲切友好”的沟通图片图片图片图片对比就对比,简单对比下独立配置中心和k8s作为配
  • 微信语音大揭秘:为什么禁止转发?

    大家好,我是你们的小米。今天,我要和大家聊一个有趣的话题:为什么微信语音不可以转发?这是一个我们经常在日常使用中遇到的问题,也是一个让很多人好奇的问题。让我们一起来揭开这
  • 使用LLM插件从命令行访问Llama 2

    最近的一个大新闻是Meta AI推出了新的开源授权的大型语言模型Llama 2。这是一项非常重要的进展:Llama 2可免费用于研究和商业用途。(几小时前,swyy发现它已从LLaMA 2更名为Lla
  • 使用Webdriver-manager解决浏览器与驱动不匹配所带来自动化无法执行的问题

    1、前言在我们使用 Selenium 进行 UI 自动化测试时,常常会因为浏览器驱动与浏览器版本不匹配,而导致自动化测试无法执行,需要手动去下载对应的驱动版本,并替换原有的驱动,可能还
  • 每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • 引领旗舰级影像能力向中端机普及 OPPO K11 系列发布 1799 元起

    7月25日,OPPO正式发布K系列新品—— OPPO K11 。此次 K11 在中端手机市场长期被忽视的影像板块发力,突破性地搭载索尼 IMX890 旗舰大底主摄,支持 OIS
  • 荣耀Magicbook V 14 2021曙光蓝版本正式开售,拥有触摸屏

    荣耀 Magicbook V 14 2021 曙光蓝版本正式开售,搭载 i7-11390H 处理器与 MX450 显卡,配备 16GB 内存与 512GB SSD,重 1.48kg,厚 14.5mm,具有 1.5mm 键盘键程、
  • 2022爆款:ROG魔霸6 冰川散热系统持续护航

    喜逢开学季,各大商家开始推出自己的新产品,进行打折促销活动。对于忠实的端游爱好者来说,能够拥有一款梦寐以求的笔记本电脑是一件十分开心的事。但是现在的
Top