0
点赞
收藏
分享

微信扫一扫

Go 文件打开和关闭


文件  基本介绍

文件,对我们并不陌生,文件是数据源(保存数据的地方)的一种,比如大家经常使用的word文档,txt文件,excel文件……都是文件。文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保持视频,声音…

文件在程序当中是以流的形式来操作的。

Go 文件打开和关闭_golang

流:数据在数据源(文件)和程序(内存)之间经历的路径

  • 输入流:数据从数据源(文件)到程序(内存)的路径           读文件操作
  • 输出流:数据从程序(内存))到数据源(文件)的路径       写文件操作

在go中对文件的操作是由哪个结构体来提供的呢?在go里面有个包叫os包,包里面有个结构体叫File,封装了对所有文件的操作

Go 文件打开和关闭_golang_02

​​os package - os - pkg.go.dev

Go 文件打开和关闭_数据_03

https://pkg.go.dev/os#File​​

Go 文件打开和关闭_文件句柄_04

可以看到上面大多是和File结构体绑定的方法。File代表一个打开文件的对象,有些时候我们称之为文件句柄。

文本文件可以使用string去处理,也可以使用byte去处理,如果处理二进制文件只能使用[]byte去处理。中间不能[]用byte转化为string去处理。

打开关闭文件📃 os.Open  File.Close

对一个文件要进行操作,那么首先应该打开一个文件。 

  1. 打开一个文件进行读操作∶os.Open(name string)(*File,error)
  2. 关闭一个文件∶File.Close()

func Open(name ​​string​​​) (*​​File​​​, ​​error​​) 这个Open是os包里面的一个函数,并不是和结构体绑定的方法(打开打开指定文件进行读取。如果成功,则可以使用返回文件上的方法进行读取)(返回的是File结构体的指针,如果打开失败返回error)

这里返回值是一个打开文件之后的File结构体指针,因为在打开的时候文件路径可能是不存在的,也有可能因为文件权限的问题,所以打开文件的时候还要返回一个失败。

当对文件操作完毕之后,比如读或者写,做完之后要注意一件事情,关闭文件。

func (*File) ​​Close​​ 

func (f *​​File​​​) Close() ​​error​​

Close 关闭文件,使其无法用于 I/O。关闭错误会返回error(要及时关闭文件句柄,否则会有内存泄漏)

示例

//获取到文件结构体指针就可以对文件进行读写操作
//file有些叫文件对象,有些叫file指针,有些叫文件句柄。

path := "test.txt"
file,err := os.Open(path)
if err != nil{
fmt.Println("open file err:",err)
}
fmt.Printf("file = %v",file)

err = file.Close()
if err !=nil{
fmt.Println("close file error")
}

可以看到就是一个地址,指针就是一个地址,文件就是一个指针类型,文件句柄其实也是一个指针。

file = &{0xc000056180}

 如果文件不存在

open file err: open test.txt1: no such file or directory
file = <nil>
close file error

可以看到关闭的时候也报错了,因为文件都没打开,怎么去关闭。

举报

相关推荐

0 条评论