如何每10秒从Go中读取大文件的最后几行

如何每10秒从Go中读取大文件的最后几行,第1张

如何每10秒从Go中读取大文件的最后几行

您可以使用file.Seek()或file.ReadAt()几乎结束,然后向前阅读。除非您知道2行=
x字节,否则您只能估计从哪里开始搜索。

您可以使用os.Stat(name)获得文件长度

这是一个基于ReadAt,Stat和示例日志文件的示例:

package mainimport (    "fmt"    "os"    "time")const MYFILE = "logfile.log"func main() {    c := time.Tick(10 * time.Second)    for _ = range c {        readFile(MYFILE)    }}func readFile(fname string) {    file, err := os.Open(fname)    if err != nil {        panic(err)    }    defer file.Close()    buf := make([]byte, 62)    stat, err := os.Stat(fname)    start := stat.Size() - 62    _, err = file.ReadAt(buf, start)    if err == nil {        fmt.Printf("%sn", buf)    }}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5086654.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存