Go 中惯用的行读取
尽管 Go 的标准库中提供了低级字节数组返回行读取函数,但更简单的方法存在更惯用的方法来从读取行获取字符串
解决方案
要从文件中无缝地逐行读取,可以使用 Readln(*bufio.Reader) 函数。它从提供的 bufio.Reader 结构中检索一行(不包括换行符)。
这是演示 Readln 用法的代码片段:
// Readln returns a single line (without the ending \n) // from the input buffered reader. // An error is returned iff there is an error with the // buffered reader. func Readln(r *bufio.Reader) (string, error) { var (isPrefix bool = true err error = nil line, ln []byte ) for isPrefix && err == nil { line, isPrefix, err = r.ReadLine() ln = append(ln, line...) } return string(ln),err }
此函数可用于读取文件中的每一行:
f, err := os.Open(fi) if err != nil { fmt.Println("error opening file= ",err) os.Exit(1) } r := bufio.NewReader(f) s, e := Readln(r) for e == nil { fmt.Println(s) s,e = Readln(r) }
此代码从指定文件中逐行读取并将每行打印到标准输出。
以上是如何在 Go 中从文件中惯用地读取行?的详细内容。更多信息请关注PHP中文网其他相关文章!