📅  最后修改于: 2023-12-03 15:24:10.933000             🧑  作者: Mango
当需要逐行读取一个文本文件时,在 Golang 中可以使用 bufio
包提供的 NewScanner()
函数。NewScanner()
函数返回一个 Scanner
类型的对象,这个对象可以被迭代来逐行读取文件内容。下面是一个简单例子:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
file, err := os.Open("filename.txt")
if err != nil {
fmt.Println("Error:", err)
return
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
line := scanner.Text()
fmt.Println(line)
}
if err := scanner.Err(); err != nil {
fmt.Println("Error:", err)
return
}
}
上述代码中涉及到了以下步骤:
os.Open()
函数打开一个指定的文件。如果无法打开这个文件,则会返回一个错误。bufio.NewScanner()
函数创建一个 Scanner
对象,这个对象可以逐行读取文件内容。scanner.Scan()
方法逐行读取文件内容,每次读取到一行后,使用 scanner.Text()
方法获取这一行的文本。注意事项:
defer
关键字确保在函数结束时关闭文件。scanner.Err()
方法来检查是否有错误发生。scanner.Text()
方法返回的字符串中不包含行尾的换行符。以上就是在 Golang 中逐行读取文件到字符串的方法,希望对你有所帮助。