244_尚硅谷_带缓冲的Reader读文件

1.读取文件操作应用案例1.读取文件操作应用案例

2.读取文件操作应用案例_代码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.代码运行结果3.代码运行结果

posted on 2026-02-23 11:27  与太阳肩并肩  阅读(0)  评论(0)    收藏  举报

导航