加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

[Go] go等待读取最后一行的数据内容

发布时间:2021-05-21 06:47:12 所属栏目:大数据 来源: https://www.jb51.cc
导读:这段代码是参照慕课网的视频教程,主要是f.Seek(0,os.SEEK_END)移动到末尾,但是里面有个小问题,当打开的文件被重新清空内容的清空下,就再也不能到读取数据了,比如在开启读取后 echo ''1.log 这样就再也读不到了,tail包是解决了这个问题的 package maini

这段代码是参照慕课网的视频教程,主要是f.Seek(0,os.SEEK_END)移动到末尾,但是里面有个小问题,当打开的文件被重新清空内容的清空下,就再也不能到读取数据了,比如在开启读取后 echo ''>1.log 这样就再也读不到了,tail包是解决了这个问题的

package main

import (
    "bufio"
    fmtioosstringstime"
)

func main() {
    readChannel := make(chan string)
    go readFile(readChannel)
    for r := range readChannel {
        fmt.Println(r)
    }
}
func readFile(readChannel chan ) {
    f,err := os.Open(1.txt)
    if err != nil {
        panic(fmt.Sprintf(open file error:%s,err.Error()))
    }
    //移动到文件末尾
    f.Seek(0 bufio.NewReader(f)
    for {
        line,err := reader.ReadBytes('n')
        .Println(err)
        if err == io.EOF {
            time.Sleep(time.Second)
            continue
        } else  nil {
            panic(ReadBytes error:" + err.Error())
        }

        lineStr := strings.TrimSpace((line))
        readChannel <- lineStr
    }
}

使用tail包测试时,有re-open文件

?

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读