golang实时读取文件更新的内容
使用golang可以使用os.File和bufio.Scanner来实时读取文件更新的内容。
以下是一个示例代码:
package main
import (
"bufio"
"fmt"
"os"
"time"
)
func main() {
file, err := os.Open("test.txt")
if err != nil {
panic(err)
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
go func() {
for {
time.Sleep(time.Second)
file.Seek(0, 0)
scanner := bufio.NewScanner(file)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
}
}()
fmt.Println("Press enter to exit")
fmt.Scanln()
}
这个程序会读取test.txt的内容并输出到控制台。然后它会启动一个协程,每秒钟重新扫描文件并输出更新的内容。当用户按下回车键时,程序会退出。
注意,这种方法可能会影响文件系统性能,因为它会频繁地扫描文件。如果您需要更高效的方法,请考虑使用文件系统监视器,如fsnotify
原文地址: https://www.cveoy.top/t/topic/epTR 著作权归作者所有。请勿转载和采集!