244_尚硅谷_带缓冲的Reader读文件
1.读取文件操作应用案例
2.读取文件操作应用案例_代码
package main
import (
"bufio"
"fmt"
"io"
"os"
)
func main() {
// 打开文件
// 概念说明: file 的叫法
// 1. file 叫文件对象
// 2. file 叫文件句柄
// 3. file 叫文件指针
file, err := os.Open("G:/task/go_study/244_尚硅谷_带缓冲的Reader读文件/test.txt")
// * 1. 判断文件是否打开成功
if err != nil {
fmt.Println("open file err = ", err)
return
}
// defer 当函数退出时, 要及时的关闭file
defer file.Close() // 及时关闭file句柄, 否则会有内存泄漏
// * 2. 创建一个 *Reader, 是带 缓冲的
/*
const (
defaultBufferSize = 4096 // 默认的缓冲区是4096
)
*/
reader := bufio.NewReader(file)
// * 3. 循环读取文件中的内容, 直到文件的末尾
fmt.Println("=============== Start read file ===============")
for {
str, err := reader.ReadString('\n') // 读到一个换行就结束, 逐行读取
// ! io.EOF 表示文件的末尾
if err == io.EOF {
break
}
fmt.Printf("str = %v", str)
}
fmt.Printf("=============== End read file ===============")
}
3.代码运行结果
浙公网安备 33010602011771号