专业编程基础技术教程

网站首页 > 基础教程 正文

go中关于文件和json操作的知识点小结

ccvgpt 2024-11-26 00:57:09 基础教程 1 ℃

一.文件的相关知识点小结

1.文件操作

文件操作基本上都是以流的形式进行操作,如输入流(文件读取操作),输出流(文件写操作)
在go中有os模块里有文件操作的相关函数

2.打开文件和关闭文件

go中关于文件和json操作的知识点小结

#打开文件,返回一个文件句柄,
os.Open(name string)(file *File,err error)
#关闭文件
os.Close(f *file)error

3.读取文件

  • 案例1:读取文件里的内容
  • 一次性将文件读取到内存中,这种情况只适于文件不大的情况
contents,err :=ioutil.ReadFile("D:\\go_code\\src\\demo\\main\\test.txt")//这个函数返回的是byte类型,输出需要转化成string,要不就输出的对应的ascii码了
	if err !=nil{
		fmt.Println("读取失败",err)
	}
	
	fmt.Println(string(contents))

4. 写文件操作

写操作函数
os.OpenFile(name string,flag int ,perm FileMode) (file *File,err error)
#参数说明
name 文件名
flag 文件打开方式,只读,只写,读写,追加等
perm 权限 
#返回类型文件指针类型,

5.判断文件是否存在

使用os.Stat可以判断文件是否存在,如果返回的错误类型为nil,说明文件或文件夹存在,
如果返回的错误类型使用os.IsNotExist()判断为真,则说明不存在,如果返回的其他类型,
  则不确定是否存在;当然也可以使用os.IsExist()来判断,如果为false,则不存在

6命令行参数

命令行参数获取:
1. 可以通过os.Args来获取
2. 可以使用flag包来解析命令行参数

二.json的基本操作

json操作比较简单,使用json包就可以操作
#对于结构体的序列化,如果我们希望序列化后的key的名字自己定义,可以利用的tag的反向机制来实现
  • 转成json
  • json解析
在反序列化的时候,只要注意一点就可以,反序列化后的数据类型与序列化前的数据类型一致就可以了,
  这里有个注意点是,在反序列化map时,是不需要make的,因为make操作,
  被封装到了Unmarshal函数中了

Tags:

最近发表
标签列表