在实际编程过程中免不了要与文件交互,通过这篇文章学习记录一下 Go 的文件操作。
文件打开与关闭
Go 在 os 包中提供了 Open 方法来打开一个文件。如果操作成功,返回的文件对象的方法可用于读取数据;对应的文件描述符具有O_RDONLY模式。如果出错,错误底层类型是 *PathError。
func Open(name string) (file *File, err error)
我们也可以通过 Create 方法来创建一个新文件。如果文件已存在会截断它(为空文件)。如果成功,返回的文件对象可用于I/O;对应的文件描述符具有O_RDWR模式。如果出错,错误底层类型是 *PathError。
func Create(name string) (file *File, err error)
有打开方法,相应的就有关闭方法。当我们使用完文件时一定记得将文件关闭,可以尽快的释放资源。Go 在 os 包中提供了 Close 方法来关闭一个文件,使文件不能用于读写。
func (f *File) Close() error
通过下面代码,演示一下文件的打开与关闭操作。
package main
import "fmt"
import "os"
func main () {
f, err := os.Open("D:\\tmp\\hello.txt")
if err != nil {
fmt.Printf("打开文件错误,%v", err) // 1
return
}
fmt.Printf("file: %+v", f) // file: &{file:0xc000112780}
f.Close()
}
如果打开一个不存在的文件,代码 1 处会输出 “打开文件错误,open D:\tmp\hellos.txt: The system cannot find the file specified.” 也就是找不到指定文件。
对于有些方法是会返回 error 的,如果是必要的操作在实际编程过程中需要判断是否返回错误,并且采取相应措施。