Go 按行读取文件

Go 中按行读取文件方法还是比较多的, 但最简单也是最优雅的方式是使用 bufio.Scanner. 我平时很少用 Go 去按行处理文件, 基本上有这方面需求也是上 python, 恰巧今天遇到, 所以记录以下

package main

import (
    "bufio"
    "log"
    "os"
)

func main() {
    f, err := os.Open("run.go")
    if err != nil {
        log.Fatalln(err)
    }
    defer f.Close()

    // scanner, 启动!
    scanner := bufio.NewScanner(f)
    for scanner.Scan() {
        // 这里注意, scanner.Text() 不会返回换行符
        log.Println(scanner.Text())
    }
    if scanner.Err() != nil {
        log.Fatalln(scanner.Err())
    }
}

参考