回答

收藏

在 Go 中逐行读取文件

技术问答 技术问答 263 人阅读 | 0 人回复 | 2023-09-12

我无法file.ReadLine在 Go 找到函数。我能找出如何快速写一个,但我只想知道我是否忽略了这里的一些东西。如何逐行阅读文件?
/ E7 w2 _1 p3 L$ j1 f$ @9 X4 Z2 w                                                               
9 r$ i- V$ f6 _1 ]$ w1 O# V: r9 S  |    解决方案:                                                               
6 \8 s! n: v6 O* g                                                                在 Go 1.在1 和更新版本中,最简单的方法是使用它bufio.Scanner. 这是一个从文件中读取行的简单例子:2 m9 z) J( I( A

    ' \. O( f  T7 L/ K( E, l
  • 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)  code]这是Reader最干净的逐干净的方法。" Y, `, _7 }5 a
  • 有一个警告:扫描仪在行驶超过 6536个字符时会出错。如果你知道你的行长大于 64K,请使用以下Buffer()增加扫描仪容量的方法:[code]...scanner := bufio.NewScanner(file)const maxCapacity = longLineLen  // your required line lengthbuf := make([]byte,maxCapacity)scanner.Buffer(buf,maxCapacity)for scanner.Scan() {...
    2 _: w. [: ~& t
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则