如何在Go中读取文件中的每一行数据?

24 min read

以下是在Go中读取文件中每一行数据的示例代码:

package main

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

func main() {
    // 打开文件
    file, err := os.Open("file.txt")
    if err != nil {
        fmt.Println("文件打开失败:", err)
        return
    }
    defer file.Close() // 关闭文件

    // 创建scanner扫描器
    scanner := bufio.NewScanner(file)

    // 循环读取每一行数据
    for scanner.Scan() {
        line := scanner.Text()
        fmt.Println(line)
    }

    // 检查scanner是否出现错误
    if err := scanner.Err(); err != nil {
        fmt.Println("扫描文件出错:", err)
        return
    }
}

首先打开文件,然后使用bufio.NewScanner创建scanner扫描器。接下来,使用for循环读取每一行,scanner.Scan()表示如果有下一行就一直读取。在每一行读取后,使用scanner.Text()获取字符串内容并打印出来。最后,检查scanner是否出现错误。如果没有错误,则读取文件的操作完成。