📅  最后修改于: 2023-12-03 15:31:02.188000             🧑  作者: Mango
在 Golang 中,我们可以使用 bufio
包来逐行读取文件。bufio
包实现了缓冲 I/O,可以在高效性和灵活性之间提供一个好的平衡点。
下面是一个简单的 Golang 程序,它可以逐行读取一个文件并打印每一行的内容。
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
file, err := os.Open("filename.txt")
if err != nil {
panic(err)
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
if err := scanner.Err(); err != nil {
panic(err)
}
}
首先,我们使用 os.Open
函数打开一个文件。如果出现错误,程序将会触发 panic。接着,我们通过 defer
关键字延迟文件的关闭操作,使得程序在函数返回前一定会关闭文件。
然后,我们使用 bufio.NewScanner
函数创建一个新的扫描器,用于逐行读取文件。接着,我们进入一个 for 循环,每次循环时扫描器都会读取文件的一行内容,并将其存储在 scanner.Text()
中。最后,我们通过 fmt.Println
函数将每行内容打印出来。
最后,我们检查扫描器是否返回了任何错误。如果有错误,我们就会触发 panic。
在 Golang 中,使用 bufio
包逐行读取文件非常简单,只需几行代码即可实现。如果你需要对大型文件进行操作,逐行读取文件是一种很好的方式,因为它不会在内存中保存整个文件,而是仅读取必要的部分。