在 Go 中,标准库为 readline 操作提供了低级原始函数,这些函数返回字节数组。有没有更方便的方法从 readline 函数获取字符串?
惯用解决方案
Go 中 readline 到字符串的惯用方法是利用 bufio。读者结构。 Readln() 函数从输入缓冲读取器返回一行(不带尾部换行符 n)。
import ( "bufio" "fmt" "os" ) 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 } func main() { 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) } }
此函数从文件中读取行,剥离换行符 (n) 并将每行打印到控制台。
以上是如何在 Go 中高效地从文件中读取一行作为字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!