Go file
os.File
os.File这个结构体封装了所有的对文件的操作
打开和关闭文件
打开文件
os.Open(name string)(*File, error)
var file, _ = os.Open("static/a.txt")
file.Close()
os.openFile()
// 如果打开错误,就会报底层的pathError,这个文件打开的方法更加一般性
func main() {
var file, _ = os.OpenFile("static/a.txt", os.O_RDONLY, 0666)
}
关闭文件
func(file *File)(error)
文件读写
使用package bufio
bufio.NewReader()
// 按行读取
func main() {
var file, err = os.Open("static/a.txt")
if err != nil { // 表示打开文件的时候返回了一个错误
return
}
// 当我们退出当前的函数的时候就关闭文件流
defer file.Close()
var reader = bufio.NewReader(file)
for {
var str, err = reader.ReadString('\n') // 这里的是表示的结尾标志是回车键
if err == io.EOF {
break
}
fmt.Print(str)
}
}
// 读取一定的字节数量
判定文件是否存在
使用到的函数 os.Stat() os.IsNotExist()
_, err := os.Stat(path) // 如果第二个值返回的是nil表示的是这个文件存在的,但是如果返回的 != nil就需要使用 os.IsNotExist()来进行判断
isNotExist := os.IsNotExist(err) // 这里的err就是上面返回的err,如果这个函数返回的表示的是true表示的是这个文件不存在,返回的是false则不知道