如何每 10 秒使用 Go 从大文件中读取最后一行

如何从大日志文件中读取最后两行而不将其完全加载到内存中?


我需要每 10 秒阅读一次(在 Win 机器上)......我一直在试图阅读最后几行......


package main


import (

    "fmt"

    "time"

    "os"

)


const MYFILE = "logfile.log"


func main() {

    c := time.Tick(10 * time.Second)

    for now := range c {

        readFile(MYFILE)

    }

}


func readFile(fname string){

    file, err:=os.Open(fname)

    if err!=nil{

        panic(err)

    }

    buf:=make([]byte, 32)

    c, err:=file.ReadAt(32, ????)

    fmt.Printf("%s\n", c)



}

日志文件类似于:


07/25/2013 11:55:42.400, 0.559

07/25/2013 11:55:52.200, 0.477

07/25/2013 11:56:02.000, 0.463

07/25/2013 11:56:11.800, 0.454

07/25/2013 11:56:21.600, 0.424

07/25/2013 11:56:31.400, 0.382

07/25/2013 11:56:41.200, 0.353

07/25/2013 11:56:51.000, 0.384

07/25/2013 11:57:00.800, 0.393

07/25/2013 11:57:10.600, 0.456

谢谢!


元芳怎么了
浏览 462回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go