在 Go 中逐行读取文件

在 Go 中逐行读取文件,第1张

在 Go 中逐行读取文件

在 Go 1.1 和更新版本中,最简单的方法是使用

bufio.Scanner
. 这是一个从文件中读取行的简单示例:

package mainimport (    "bufio"    "fmt"    "log"    "os")func main() {    file, err := os.Open("/path/to/file.txt")    if err != nil {        log.Fatal(err)    }    defer file.Close()    scanner := bufio.NewScanner(file)    // optionally, resize scanner's capacity for lines over 64K, see next example    for scanner.Scan() {        fmt.Println(scanner.Text())    }    if err := scanner.Err(); err != nil {        log.Fatal(err)    }}

这是

Reader
逐行读取的最干净的方式。

有一个警告:扫描仪会在行超过 65536 个字符时出错。如果您知道您的行长度大于 64K,请使用以下

Buffer()
方法增加扫描仪的容量:

...scanner := bufio.NewScanner(file)const maxCapacity = longLineLen  // your required line lengthbuf := make([]byte, maxCapacity)scanner.Buffer(buf, maxCapacity)for scanner.Scan() {...


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5618213.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存