Golang使用带缓冲区的Reader循环读取大文件

使用"bufio"中的NewReader方法,返回一个带缓冲区的Reader

而*File就实现了io.Reader接口,

具体代码

package main


import (
	"fmt"
	"io"
	"os"
	"bufio"
)


func main(){
	file, err := os.Open("./hello.go")
	if err!=nil{
		fmt.Println("文件读取错误", err)
	}else{
		defer file.Close()
		reader := bufio.NewReader(file)
		for{
			str, err := reader.ReadString('
')// 每次读取一行
			if err==io.EOF{// 读到文件末尾
				break
			}else{
				fmt.Print(str)
			}
		}
	}
	fmt.Println("文件读取结束!")
}

结果

原文地址:https://www.cnblogs.com/pangqianjin/p/14401989.html