3 回答

TA贡献1853条经验 获得超18个赞
有多种方法可以逐行读取文件,但是ioutil.ReadFile确实是一个不错的开始。当然,您可以将其分配给变量。查看ReadFile的函数签名,看看它如何返回字节片和错误。分配两个;检查错误是否为nil。如果错误不是nil,则打印错误,这样您就可以看到问题所在。然后,一旦将字节包含在变量中,请尝试逐行将其吐出。尝试使用bytes.Split,或更简单的方法是将其转换为字符串,然后使用strings.Split。

TA贡献1864条经验 获得超6个赞
自从提出并回答了这个问题以来,bufio软件包已更新(对于Go 1.1),也许现在有了更好的解决方案(并不是所有这些都不好)。
bufio软件包中的Scanner类型使此操作非常容易:
func main() {
f, e := os.Open("one-hundred_50.txt")
if e != nil {
// error opening file, handle it
}
s := bufio.NewScanner(f)
for s.Scan() {
// scanner.Text() contains the current line
}
if e = s.Err(); e != nil {
// error while scanning; no error at EOF
}
}
- 3 回答
- 0 关注
- 299 浏览
添加回答
举报