文件的读取和关闭
package main
import (
"fmt"
"os"
"time"
)
func main() {
file, err := os.Open("C:\\Users\\11316\\Desktop\\2021年3月5日菜谱")
if err == nil{
fmt.Println("文件打开成功")
}else {
fmt.Println("文件打卡失败,err=",err)
return
}
defer func() {
file.Close()
fmt.Println("文件已关闭")
}()
fmt.Println("拿着文件一顿骚操作",file)
time.Sleep(1*time.Second)
}
带缓冲的文件读入
mode:
package main
import (
"bufio"
"fmt"
"io"
"os"
)
func main() {
//权限:4=readable,2=writeable,1=executable
//6=4+2
file, err := os.OpenFile("C:\\Users\\ReganYue\\Desktop\\2021年3月5日菜谱", os.O_RDONLY, 0666)
if err==nil{
fmt.Println("文件打开成功")
}else{
fmt.Println("文件打开失败,err=",err)
return
}
defer func() {
file.Close()
fmt.Println("文件已关闭")
}()
//创建该文件的缓冲读取器
reader := bufio.NewReader(file)
//循环读入数据
for{
//每次读入一行
str, err := reader.ReadString('\n')
//判断读入是否成功
if err == nil{
fmt.Println(str)
}else {
//已到文件末尾,跳出读取循环
if err == io.EOF{
fmt.Println("文件已到达末尾")
break
}else{
//有其他异常,打印异常并结束程序
fmt.Println(err)
}
}
}
fmt.Println("文件读取完毕")
}