1文件的基本介绍
文件的概念:文件是数据源(保存数据的地方)的一种,比如大家经常用的word文档,txt文档,excel文件......都是文件。文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保存视频,声音...
输入流和输出流:
os.File封装所有文件相关操作,File是一个结构体
后面我们操作文件,会经常使用到os.File结构体
2,打开文件和关闭文件
使用的函数和方法:
例:
注意:file叫file对象,叫file指针,叫file文件句柄
3,读文件操作应用实例
1)读取文件的内容并显示在终端(带缓冲区的方式),使用os.Open,file.Close,bufio.NewReader(),reader.ReadString函数和方法
2)读取文件的内容并显示在终端(使用ioutil一次将整个文件读入到内存中),这种方式适用于文件不大的情况。相关方法和函数(ioutil.ReadFile)
这里要注意:没有显示的open文件,也没有显示的close文件,因为文件的open和close都被封装到readefile函数内部
4,写文件操作应用实例
4.1基本介绍os.OpenFile函数
第二个参数,flag int文件打开模式(可以组合)
第三个参数:权限控制(linux)
r->4
w->2
x->1
4.2,基本应用实例-方式1
1)创建一个新文件,写入5句“hello world”
2)打开一个存在的文件,将原来的内容覆盖成新的内容,10句“world coming”
3)打开一个存在的文件,将原来的内容读出显示在终端,并且追加5句“hello 北京”
4.3基本应用实例-方式2
编写一个程序,将一个文件的内容写入到另外一个文件。注意:这两个文件要存在
说明:使用ioutil.ReadFile/ioutil.WriteFile完成文件任务
4.4判断文件是否存在
go判断文件或文件夹是否存在的方法为使用os.Stat()函数返回的错误值进行判断:
1)如果返回的错误为nil,说明文件或文件夹存在
2)如果返回的错误类型使用os.IsNotexist()判断为true,说明文件或文件夹不存在
3)如果返回的错误为其他类型则不确定是否存在
5,文件编程应用实例
5.1拷贝文件
说明:将一张图片/电影/mp3拷贝到另外一个文件中,使用到的是io包下的func Copy(dst Writer,src Reader)(written int64,err error)
5.2统计英文,数字,空格和其他字符数量
6,命令行参数
6.1需求:我们希望能够获取到命令行输入的各种参数
6.2基本介绍
os.Args是一个string的切片,用来存储所有的命令行参数
6.3举例说明,编写一段代码获取命令行各个参数
7,json基本介绍
概述:JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。key-val
JSON是在2001年开始推广使用的数据格式,目前已经成为主流的数据格式
JSON易于机器解析和生成,并有效的提升网络传输效率,通常程序在网络传输时会先将数据(结构体,map等)序列化成json字符串,到接收方得到json字符串时,再反序列化恢复成原来的数据类型(结构体,map等)这种方式成为各个语言的标准。
应用场景:
8,json数据格式说明
在js语言中,一切都是对象。因此,任何的数据类型都可以通过JSON来表示,例如字符串,数字,对象,数组,map,结构体等。任何数据类型都可以转成JSON格式。
JSON键值对是用来保存数据一种格式,键/值对组合中的键名写在前面并用双引号包裹,使用冒号:分隔,然后紧接着值:
[{"key1":val1,"key2":val2,"key4":[val3,val4]}
比如:
{"firstname":"json","age":"18","addr":["北京","上海"]}
9,json数据在线解析
可以验证我们的json格式是否正确
10,json的序列化
介绍:json序列化是指,将有key-VALUE的数据类型(比如结构体,map,切片)序列化成json字符串的操作
应用案例:这里我们介绍一下结构体,map和切片的序列化,其他数据类型序列化类似
注意:对于结构体的序列化,如果我们希望序列化后的key名字,是我们自己重新制定的,那么我们可以给struct指定一个标签
11,json的反序列化
基本介绍:json反序列化是指,将json字符串反序列化成对应的数据类型(比如结构体,map,切片)的操作
应用案例:这里我们介绍一下json字符串反序列化成结构体,map和切片
码字不易,还望点个赞点个关注多多支持一下。