栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在 Go 中逐行读取文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在 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() {...


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/612092.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号