小月肖
2018-04-23 22:00
出错了出错了,注释掉就没事了,centos 7.0
读取时err会等于EOF
我这里正常,具体报什么错?把错误信息贴出来呗。
最后一个字节吧
如果一开始有数据 seek直接读取到末尾如果文件为空需要先将\n读取
我一开始文件里面是有数据的
这是正常的把,err==io.EOF 是处理文件到末尾的情况,然后再需要等待日志继续产生。
func (r *ReadFromFile) Read(rc chan []byte) {
//读取数据
f, err := os.Open(r.path)
if err != nil {
panic(fmt.Sprintf("open file fail:%s", err.Error()))
}
//从文件末尾逐行读取文件内容
f.Seek(0, 2)
rd := bufio.NewReader(f)
for {
line, err := rd.ReadBytes('\n')
if err == io.EOF {
log.Println(err)
time.Sleep(500 * time.Millisecond)
continue
} else if err != nil {
panic(fmt.Sprintf("ReadBytes error: %s", err.Error()))
}
rc <- line[:len(line)-1]
}
}如果注释不
f.Seek(0, 2)
则直接在
line, err := rd.ReadBytes('\n')err==io.EOF
Go并发编程案例解析
15301 学习 · 56 问题
相似问题