使用golang可以使用os.Filebufio.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

golang实时读取文件更新的内容

原文地址: https://www.cveoy.top/t/topic/epTR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录