Go 语言中,EOF 字符由常量 io.EOF 表示,表示文件或流的末尾。应用场景包括:检测读取操作已达文件或流末尾检查文件或流已关闭处理错误情况(如文件不存在)

Go 语言中的 EOF 字符
在 Go 语言中,EOF(文件结束)字符由常量 io.EOF 表示。它是一个表示输入流或文件已达到结尾的特殊值。
EOF 字符的用途
EOF 字符用于指示如下情况:
立即学习“go语言免费学习笔记(深入)”;
- 读取操作已到达文件或流的末尾
- 文件或流已关闭
- 错误已发生(例如文件不存在)
检查 EOF
当使用 io.Reader 接口或 bufio 包中的 Scanner 类型时,可以使用以下方法检查输入的 EOF:
-
io.Reader.Read()方法将返回io.EOF作为错误值来表示 EOF -
bufio.Scanner.Scan()方法将返回false并将错误设置为io.EOF
示例
以下代码示例演示了如何使用 io.EOF 来检测 EOF:
package main
import (
"fmt"
"io"
"os"
)
func main() {
// 打开一个文件
file, err := os.Open("example.txt")
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
// 创建一个 bufio.Scanner
scanner := bufio.NewScanner(file)
// 逐行读取文件
for scanner.Scan() {
fmt.Println(scanner.Text())
}
// 检查 EOF
if err := scanner.Err(); err != nil {
if err == io.EOF {
fmt.Println("到达文件末尾")
} else {
fmt.Println(err)
}
}
}










