首页 >后端开发 >Golang >如何在 Go 中高效地从文件中读取一行作为字符串?

如何在 Go 中高效地从文件中读取一行作为字符串?

Barbara Streisand
Barbara Streisand原创
2024-12-08 03:18:11590浏览

How to Efficiently Read a Line from a File as a String in Go?

Go 中的 readline 到 String

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn