文件
文件是数据源,最主要的就是保存数据的功能
文件在程序中是以流的形式进行操作的.
文件流
流:数据在数据源(文件)和程序(内存)之间经历的路径
os.File 封装了所有文件相关操作,file是一个结构体
在操作文件的时候,会经常使用os.File这个结构体
常用文件操作的函数和方法
os.open(name string)(*File err) //代开文件
关闭文件
package main
import "fmt"
import "os"
func main() {
//打开文件
//概念说明:file的叫法
//1 file 叫 file对象
// 2 file 叫file 指针
// 3 file 叫file文件句柄
fiel , err := os.Open("/Users/qiao/Desktop/chongqing1_round1_train1_20191223/images/img_0000012.jpg")
if err != nil{
fmt.Println("open file err =",err)
}
//输入下文件,看看文件是什么
fmt.Println("file=%v",fiel)
//关闭文件
err = fiel.Close()
if err != nil{
fmt.Println("close file err=",err)
}
}
输出结果
file=%v &{0xc000080120}
发现文件就是个指针
读文件操作实例
读取文件内容并显示在终端(带缓冲的方式)
代码实现:
package main
import (
"bufio"
"fmt"
"io"
)
import "os"
func main() {
file,err := os.Open()
if err != nil{
fmt.Println("open the file err=",err)
}
//当函数退出时,要及时关闭file
defer file.Close() //要及时关闭file句柄 否则会有内存泄漏
//创建一个reader 是带缓存的
/*
const (
defaultBufSize = 4096 //默认缓存区为 4096
)
*/
reader := bufio.NewReader(file)
for {
str,err := reader.ReadString('\n') //读到一个换行接结束
if err == io.EOF { //io.eof 表示文件末尾
break
}
fmt.Print(str)
}
fmt.Println("文件读取结束")
}








网友评论