从 Go 中的文本文件读取字符串
在 Go 中处理文本文件时,可能需要读取一行文本转换为字符串。虽然标准库提供了返回字节数组的低级函数,但更方便的方法是使用直接处理此任务的专用函数。
解决方案
以下代码演示了如何将文本文件中的一行读入字符串:
import ( "bufio" "fmt" "os" ) // ReadLine reads a single line from a file. func ReadLine(r *bufio.Reader) (string, error) { var ( isPrefix bool = true err error line, ln []byte ) for isPrefix && err == nil { line, isPrefix, err = r.ReadLine() ln = append(ln, line...) } return string(ln), err } func main() { fi := `<path-to-your-file>` f, err := os.Open(fi) if err != nil { fmt.Println("error opening file= ", err) os.Exit(1) } defer f.Close() r := bufio.NewReader(f) s, e := ReadLine(r) for e == nil { fmt.Println(s) s, e = ReadLine(r) } }
此代码打开指定的文件,初始化一个缓冲的文件reader,并调用 ReadLine 函数从文件中读取每一行。生成的字符串将打印到 stdout。
用法
在缓冲区读取器上调用 ReadLine 函数以将单行内容作为字符串获取。如果输入中不存在换行符,ReadLine 函数会处理读取多行。
这种方法消除了手动处理字节数组并将其转换为字符串的需要,提供了一种简单有效的方式来读取面向行的方法文本文件。
以上是如何在 Go 中高效地将文本文件中的一行读取为字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!