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

go语言 哪些字符是eof

Go 语言中的 EOF 字符

在 Go 语言中,EOF(文件结束)字符由常量 io.EOF 表示。它是一个表示输入流或文件已达到结尾的特殊值。

EOF 字符的用途

EOF 字符用于指示如下情况:

  • 读取操作已到达文件或流的末尾
  • 文件或流已关闭
  • 错误已发生(例如文件不存在)

检查 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)
        }
    }
}